DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::
上一页 1 ··· 458 459 460 461 462 463 464 465 466 ··· 474 下一页

2012年7月4日

摘要: win32直接操作的是句柄HANDLE,每个句柄就对应windows窗口,而vc对HANDLE进行类封装,间接操作的都是HANDLE,现在句柄只是类的一个成员变量。从句柄到指针 CWnd* pWnd=CWnd::FromHandle(hWnd); //a temporary CWnd object is created //and attached. pWnd->Attach(hWnd); //Attaches a Windows window to a CWnd object从指针到句柄 HWND hWnd=pWnd->GetSafeHandle(); hWnd=pWnd-> 阅读全文
posted @ 2012-07-04 16:12 DoubleLi 阅读(9618) 评论(0) 推荐(0)

摘要: 基于对话框的程序(mfc默认生成),重载OnEraseBkgnd函数,其它不动,若在OnPaint函数中不调用其基类的OnPaint函数,即注释掉CDialog::OnPaint();,代码如下: [cpp] view plaincopyprint?voidCDDDDlg::OnPaint(){if(IsIconic()){CPaintDCdc(this);//devicecontextforpainting SendMessage(WM_ICONERASEBKGND,reinterpret_cast<WPARAM>(dc.GetSafeHdc()),0);//Centericon 阅读全文
posted @ 2012-07-04 14:31 DoubleLi 阅读(3796) 评论(0) 推荐(0)

摘要: 方法一:在OnPaint中StretchBlt具体是:注释掉CDialog::OnPaint()或放到结尾(原因何在呢?),并加入贴图代码[cpp] view plaincopyprint?voidCqqqqqDlg::OnPaint(){if(IsIconic()){CPaintDCdc(this);//devicecontextforpainting SendMessage(WM_ICONERASEBKGND,reinterpret_cast<WPARAM>(dc.GetSafeHdc()),0);//Centericoninclientrectangle intcxIcon= 阅读全文
posted @ 2012-07-04 14:30 DoubleLi 阅读(6340) 评论(0) 推荐(0)

2012年7月3日

摘要: 设置对话框背景颜色及背景图片可在OnCtlColor(),OnEraseBkgnd(),OnPaint()里设置,对话框初始化完毕,显示时调用OnSize()->OnEraseBkgnd(),->OnPaint()->OnCtlColor(), 若想改变对话框大小,比如全屏显示ShowWindow(SW_SHOWMAXIMIZED);UpdateWindow();其中 ShowWindow会调用OnSize()->OnEraseBkgnd(),UpdateWindow();调用OnPaint()->OnCtlColor(),若对话框中没有设置消息响应OnErase 阅读全文
posted @ 2012-07-03 14:33 DoubleLi 阅读(7252) 评论(0) 推荐(0)

摘要: voidInvalidate( BOOL bErase = TRUE );该函数的作用是使整个窗口客户区无效。窗口的客户区无效意味着需要重绘,例如,如果一个被其它窗口遮住的窗口变成了前台窗口,那么原来被遮住的部分就是无效的,需要重绘。这时Windows会在应用程序的消息队列中放置WM_PAINT消息。MFC为窗口类提供了WM_PAINT的消息处理函数OnPaint,OnPaint负责重绘窗口。视图类有一些例外,在视图类的OnPaint函数中调用了OnDraw函数,实际的重绘工作由OnDraw来完成。参数bErase为TRUE时,重绘区域内的背景将被擦除,否则,背景将保持不变。和 Update. 阅读全文
posted @ 2012-07-03 14:10 DoubleLi 阅读(4569) 评论(0) 推荐(0)

摘要: MoveWindow只能设置窗口的大小和位置;SetWindowPos拥有MoveWindow的全部功能之外,还可以设置窗口的层叠关系(如,把指定的窗口放在所有窗口的最上层--always on top就可以用这个函数、或者把指定的窗口放在另一个窗口的下层,等等)。 没有什么优缺点可言,只是功能上的大小有别。你完全可以不用MoveWindow,而只用SetWindowPos;但是,在只要设置窗口大小或位置的情况下,你也完全可以使用MoveWindow.void MoveWindow( int x, int y, int nWidth, int nHeight, BOOL bRepaint = 阅读全文
posted @ 2012-07-03 11:22 DoubleLi 阅读(1803) 评论(1) 推荐(1)

摘要: 1. 系统何时发送WM_PAINT消息? 系统会在多个不同的时机发送 WM_PAINT 消息:当第一次创建一个窗口时,当改变窗口的大小时,当把窗口从另一个 窗口背后移出时,当最大化或最小化窗口时,等等,这些动作都是由系统管理的,应用只是被动地接收该消息,在消息处理 函数中进行绘制操作;大多数的时候应用也需要能够主动引发窗口中的绘制操作,比如当窗口显示的数据改变的时候,这一 般是通过 InvalidateRect 和 InvalidateRgn 函数来完成的。 InvalidateRect 和 InvalidateRgn把指定的区域加到窗口的 Update Region 中,当应用的消息队列没有 阅读全文
posted @ 2012-07-03 10:10 DoubleLi 阅读(2085) 评论(0) 推荐(0)

2012年7月1日

摘要: @echo off SET Pash=%cd%rem 删除当前目录下所有obj,bin目录for /f "tokens=*" %%a in ('dir obj /b /ad /s ^|sort') do rd "%%a" /s/qfor /f "tokens=*" %%a in ('dir bin /b /ad /s ^|sort') do rd "%%a" /s/qdel %Pash%\Build\Release\Client\*.* /s/qdel %Pash%\Build\Re 阅读全文
posted @ 2012-07-01 19:30 DoubleLi 阅读(592) 评论(1) 推荐(0)

2012年6月28日

摘要: 以前写过类似的函数,最近又用到了,简单总结一下,以备后用。1 StrToInt 此函数将编辑框中输入的字符串,如“1001”,转化为十进制数字,如1001。int StrToInt(const char* str){int num = 0;BOOL RIGHT = FALSE;if(str!=NULL){ const char* digit = str; while((* digit != '/n')) { if(*digit >= '0' && *digit <= '9') { num = num * 10 +(*d 阅读全文
posted @ 2012-06-28 20:11 DoubleLi 阅读(987) 评论(0) 推荐(0)

摘要: 1 DAO简介 DAO(数据访问对象)是一种应用程序编程接口(API),存在于微软的Visual Basic中,它允许程序员请求对微软的Access数据库的访问。DAO是微软的第一个面向对象的数据库接口。DAO对象封闭了Access的Jet函数。通过Jet函数,它还可以访问其他的结构化查询语言(SQL)数据库。在VC中,它是从Visual C++4.0版开始引入的。2 DAO和ODBC的比较2.1 相似点MFC的DAO类和ODBC类有很多相似之处,主要有两点:1) 都支持对各种ODBC数据源的访问。2) 提供了功能相似的MFC类。例如DAO的CDaoDatabase类对应于ODBC的CData 阅读全文
posted @ 2012-06-28 20:08 DoubleLi 阅读(2693) 评论(0) 推荐(0)

上一页 1 ··· 458 459 460 461 462 463 464 465 466 ··· 474 下一页