DoubleLi

qq: 517712484 wx: ldbgliet

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

2012年7月4日

摘要: 先来看CreateEx函数:BOOL CWnd::CreateEx(DWORD dwExStyle, LPCTSTR lpszClassName,LPCTSTR lpszWindowName, DWORD dwStyle,const RECT& rect, CWnd* pParentWnd, UINT nID,LPVOID lpParam /* = NULL */){return CreateEx(dwExStyle, lpszClassName, lpszWindowName, dwStyle,rect.left, rect.top, rect.right - rect.left, 阅读全文
posted @ 2012-07-04 21:02 DoubleLi 阅读(4449) 评论(1) 推荐(1)

摘要: 总结OnOK()、OnCancel()、OnClose()、OnDestroy()之间的区别(转) 2009年09月22日 下午 08:33 第一,OnOK()和OnCancel()是CDialog基类的成员函数,而OnClose()和OnDestroy()是CWnd基类的成员函数,即WM消息响应函数。从应用程序结构的角度,拿对话框来说,红色的X对应的是CWnd,而处于对话框中的“确定”、“取消”按钮则对应了CDialog。 第二,OnClose()和OnDestroy() 在单视图程序中,根据<<深入浅出MFC>>所讲,程序退出时执行的操作顺序为(从点X按钮开始)(1 阅读全文
posted @ 2012-07-04 17:51 DoubleLi 阅读(2827) 评论(0) 推荐(1)

摘要: 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 阅读(9588) 评论(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 阅读(3776) 评论(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 阅读(6314) 评论(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 阅读(7214) 评论(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 阅读(4463) 评论(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 阅读(1777) 评论(1) 推荐(1)

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

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