MainDlg.h

  1. // MainDlg.h : interface of the CMainDlg class
  2. //
  3. /////////////////////////////////////////////////////////////////////////////
  4.  
  5. #pragma once
  6.  
  7. class CMainDlg : public CDialogImpl<CMainDlg>
  8. {
  9. public:
  10. enum { IDD = IDD_MAINDLG };
  11.  
  12. BEGIN_MSG_MAP(CMainDlg)
  13. MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
  14. MESSAGE_HANDLER(WM_PAINT, OnPaint)
  15. COMMAND_ID_HANDLER(IDCANCEL, OnCancel)
  16. END_MSG_MAP()
  17.  
  18. // Handler prototypes (uncomment arguments if needed):
  19. // LRESULT MessageHandler(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
  20. // LRESULT CommandHandler(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
  21. // LRESULT NotifyHandler(int /*idCtrl*/, LPNMHDR /*pnmh*/, BOOL& /*bHandled*/)
  22.  
  23. LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
  24. LRESULT OnCancel(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
  25. LRESULT OnPaint(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
  26. };

MainDlg.cpp

  1. // MainDlg.cpp : implementation of the CMainDlg class
  2. //
  3. /////////////////////////////////////////////////////////////////////////////
  4.  
  5. #include "stdafx.h"
  6. #include "resource.h"
  7.  
  8. #include "MainDlg.h"
  9. #include <atlimage.h>
  10. #include <time.h>
  11.  
  12. LRESULT CMainDlg::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
  13. {
  14. // center the dialog on the screen
  15. CenterWindow();
  16.  
  17. // set icons
  18. HICON hIcon = AtlLoadIconImage(IDR_MAINFRAME, LR_DEFAULTCOLOR, ::GetSystemMetrics(SM_CXICON), ::GetSystemMetrics(SM_CYICON));
  19. SetIcon(hIcon, TRUE);
  20. HICON hIconSmall = AtlLoadIconImage(IDR_MAINFRAME, LR_DEFAULTCOLOR, ::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON));
  21. SetIcon(hIconSmall, FALSE);
  22.  
  23. return TRUE;
  24. }
  25.  
  26. LRESULT CMainDlg::OnCancel(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
  27. {
  28. EndDialog(wID);
  29. return 0;
  30. }
  31.  
  32. LRESULT CMainDlg::OnPaint(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
  33. {
  34. srand((unsigned)time(NULL));
  35. CPaintDC dc(this->m_hWnd);
  36. CBrush brush;
  37. CRect rect;
  38. GetClientRect(&rect);
  39. InvalidateRect(&rect, FALSE);
  40. brush.CreateSolidBrush(RGB(rand() % 255, rand() % 255, rand() % 255));
  41. dc.FillRect(&rect, brush);
  42. return TRUE;
  43. }

无限次刷新客户区,实现重绘。

  1. class CPaintDC : public CDC
  2. {
  3. public:
  4. // Data members
  5. HWND m_hWnd;
  6. PAINTSTRUCT m_ps;
  7.  
  8. // Constructor/destructor
  9. CPaintDC(HWND hWnd)
  10. {
  11. ATLASSERT(::IsWindow(hWnd));
  12. m_hWnd = hWnd;
  13. m_hDC = ::BeginPaint(hWnd, &m_ps);
  14. }
  15.  
  16. ~CPaintDC()
  17. {
  18. ATLASSERT(m_hDC != NULL);
  19. ATLASSERT(::IsWindow(m_hWnd));
  20. ::EndPaint(m_hWnd, &m_ps);
  21. Detach();
  22. }
  23. };

可见,CPaintDC封装了只能在WM_PAINT消息下处理的BeginPaint、EndPaint函数。

case WM_PAINT:

hdc = BeginPaint(hwnd, &ps);

EndPaint(hwnd, &ps);

return 0;

WTL设置对话框背影色的更多相关文章

  1. CFileDialog(文件夹对话框类)和CFontDialog(字体设置对话框类)的使用学习

    CFileDialog(文件夹对话框类) 主要用于文件的保存,另存,打开,关闭等功能 功能“另存为”的实现: void CTXTDlg::OnFileSaveas() { LPCTSTR szFilt ...

  2. MFC设置对话框大小

    设置对话框大小不可改变 1.在类的头文件中加入函数申明 (.h文件) afx_msg void OnGetMinMaxInfo(MINMAXINFO *lpMMI); 2.在消息映射中添加 (.cpp ...

  3. 一行代码设置TForm颜色的前世今生(属性赋值引起函数调用,然后发消息实现改变显示效果),TForm的初始颜色在dfm中设置了clBtnFace色

    来自万一的帖子:http://www.cnblogs.com/del/archive/2008/04/27/1173658.html的确做到了一行代码设置TForm控件的颜色(一点感想:Delphi程 ...

  4. VC编程中如何设置对话框的背景颜色和静态文本颜色

    晚上编一个小程序,涉及到如何设置对话框的背景颜色和静态文本颜色.这在VC6.0中本来是一句话就搞定的事.在应用程序类中的InitInstance()函数添加: //设置对话框背景和文本颜色 SetDi ...

  5. VS2010/MFC设置对话框控件的Tab顺序

    设置对话框控件的Tab顺序 前面几节为大家演示了加法计算器程序完整的编写过程,本节主要讲对话框上控件的Tab顺序如何调整. 上一讲为“计算”按钮添加了消息处理函数后,加法计算器已经能够进行浮点数的加法 ...

  6. GUI颜色、字体设置对话框

    %颜色设置对话框 uisetcolor %c 红色 c=uisetcolor %默认规定颜色 c=uisetcolor([ ]); %设置曲线颜色 h = plot([:]); c = uisetco ...

  7. Android Studio中如何设置颜色拾色器工具

    Android Studio如何设置颜色拾色器工具Color Picker? 你可能下载过一些获取颜色值的一些小工具, 这种方式获取颜色,需要先切换窗口转跳到桌面,然后打开拾色器小工具程序,然后去拾取 ...

  8. WTL改变对话框大小

    1.让对话框从CdialogResize类继承过来: class CMainDlg : public CDialogImpl<CMainDlg>, public CDoubleBuffer ...

  9. MFC编程入门之十(对话框:设置对话框控件的Tab顺序)

    前面几节为大家演示了加法计算器程序完整的编写过程,本节主要讲对话框上控件的Tab顺序如何调整. 上一讲为"计算"按钮添加了消息处理函数后,加法计算器已经能够进行浮点数的加法运算.但 ...

随机推荐

  1. 2020你还不会Java8新特性?方法引用详解及Stream 流介绍和操作方式详解(三)

    方法引用详解 方法引用: method reference 方法引用实际上是Lambda表达式的一种语法糖 我们可以将方法引用看作是一个「函数指针」,function pointer 方法引用共分为4 ...

  2. 1035 插入与归并 (25 分)C语言

    根据维基百科的定义: 插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列.每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置.如此迭代直到全部元素有序. 归并排序进行如下迭 ...

  3. Spring事务失效的 8 大原因,这次可以吊打面试官了!

    今天再来一篇<吊打面试官>系列,这次真的要吊打了,哈哈!(看往期吊打系列请在后台回复:吊打,我会陆续更新--) 前几天栈长不是发了一篇文章,里面有一个关于事务失效的问题: 用 Spring ...

  4. MinGW-W64下载与安装

    安装方案 1 下载安装包,MinGW-w64 - for 32 and 64 bit Windows,然后直接以管理员安装即可,但是这个方案在部分电脑可能不行,会提示 cannot download ...

  5. POJ 2456 Aggressive cows (二分)

    题目传送门 POJ 2456 Description Farmer John has built a new long barn, with N (2 <= N <= 100,000) s ...

  6. 快速掌握—HTML快速实现自定义Input开关

    HTML <input id="customSwitch" type="checkbox" /> <label for="custo ...

  7. C# 阿里云查询、删除文件

    class Program { static string regionId = "cn-shanghai"; static string accessKeyId = " ...

  8. UGUI ScrollView中显示模型和特效

    游戏开发中有时候会遇到在UI上显示模型和特效的需求,这次需要在ScrollView上显示.我们使用UGUI的Screen Space - Camera模式,修改模型和特效的layer使之显示在UI上面 ...

  9. es6中的面向对象写法

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  10. vue 移动端在div上绑定click事件 失效

    在.vue的文件中使用了better-scroll,在div标签上绑定click事件后,无效. 原因:使用了better-scroll,默认它会阻止touch事件.所以在配置中需要加上click: t ...