C++
文章平均质量分 78
Kitus
这个作者很懒,什么都没留下…
展开
-
自绘按钮的实现
转自http://www.vckbase.com/index.php/wv/374,同时感谢该大牛的分享!如果你希望能够在自己的程序中表现出新意,那么你一定不会仅仅满足于MFC提供那些标准控件。这时,我们就必须自己另外多做些工作了。就改变控件外观这一点来说,主要是利用控件的自绘功能(Owner Draw)实现的。本篇将和各位一起定义一个XP风格的CXPButton按钮类,目的不在于介绍CXPB转载 2013-11-25 19:47:04 · 1134 阅读 · 0 评论 -
VC中按钮的MouseDown和MouseUp事件捕捉
VC的MFC中,按钮控件只向它的父窗口发送两个WM_COMMAND消息:BN_CLICKED和 BN_DOUBLECLICKED,分别对应按钮的单击和双击事件。然而,MouseDown和MouseUp也是我们较常用的事件。它们分别对应 WM_LBUTTONDOWN和WM_LBUTTONUP消息,却没有被发送到父窗口,因此无法在添加了它们的窗口中直接捕获。有很多文 章介绍了通过继承CButton转载 2015-10-24 16:46:57 · 4821 阅读 · 1 评论 -
WM_USER以及自定义消息WM_XXXX的定义 声明 实现
WM_USER 为了防止用户定义的消息ID与系统的消息ID冲突,MS(Microsoft)定义了一个宏WM_USER,小于WM_USER的ID被系统使用,大于WM_USER的ID被用户使用。自定义消息的步骤编辑(一)先在头文件中定义自己消息的ID,如 #define WM_MY_FIRST_MESSAGE (WM_USER + 0x001)(二)再声明自己转载 2015-10-21 16:57:36 · 6617 阅读 · 0 评论 -
ListControl 控件的使用方法
1.新建对话框MFC,在对话框上放一个ListCtrlID:IDC_PATHView:Report2.为ListCtrl添加变量右击->添加变量m_wndPath3.找到OnInitDialog()函数添加如下代码:// TODO: 在此添加额外的初始化代码m_wndPath.DeleteAllItems();//清空转载 2014-11-03 19:25:21 · 1071 阅读 · 1 评论 -
创建模态窗口与非模态窗口
CMyDialog* pDialog;void CMyWnd::OnSomeAction(){ //pDialog initialized to NULL in the constructor of CMyWnd class pDialog = new CMyDialog(); //Check if new succeeded and we got a valid poin转载 2014-10-13 22:43:45 · 720 阅读 · 0 评论 -
利用class类窗口过程实现
#include#includeclass CMyWindow{public:BOOL CreateEx (DWORD dwExStyle, // extended window style LPCTSTR lpClassName, // registered class name LPCTSTR lpWindowName, // window na原创 2014-08-24 02:52:19 · 587 阅读 · 0 评论 -
windows编程过程
#include#includeLRESULT CALLBACK Function( HWND hwnd, // handle to window UINT uMsg, // message identifier WPARAM wParam, // first message parameter LPARAM lParam // s原创 2014-08-22 01:16:50 · 481 阅读 · 0 评论 -
Invalidate()
Invalidate介绍void Invalidate( BOOL bErase = TRUE );参数: bErase 决定了是否要在WM_PAINT消息前发送WN_ERASEBKGND该函数的作用是使整个窗口客户区无效。窗口的客户区无效意味着需要重绘,例如,如果一个被其它窗口遮住的窗口变成了前台窗口,那么原来被遮住的部分就是无效的,需要重绘。这时Windows会在应用程序的消息队列转载 2013-12-05 13:52:50 · 617 阅读 · 0 评论 -
CButtonST使用技巧
CButtonST类主要包括BtnST.h、BtnST.cpp、BCMenu.h和BCMenu.cpp四个文件。如果你打算使用CButtonST的窗口不止一个,那么我建议你在VC++的Workspace | FileView中导入以上的四个文件之后,然后在SdtAfx.h文件中添加合适的include语句,如#include "BtnST.h"。在接下来的几篇文章中,我将根据作者提供的演示转载 2013-12-05 15:53:52 · 701 阅读 · 0 评论 -
GetObject()
函数简介函数功能:该函数得到指定图形对象的信息,根据图形对象,函数把填满的或结构,或表项(用于逻辑调色板)数目放入一个指定的缓冲区。函数原型:int GetObject(HGDIOBJ hgdiobj, int cbBuffer, LPVOID lpvObject);参数:hgdiobj:指向感兴趣的图形对象的句柄,它可以是这样的一个句柄:一个逻辑位图、一个刷子、一种字体、一个调色转载 2013-12-02 18:23:51 · 1252 阅读 · 0 评论 -
VC++ 多线程编程,win32,MFC 例子
一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:void CSingleThreadDlg::OnSleepSixSecond() { Sleep(6000)转载 2015-11-30 17:36:10 · 3316 阅读 · 0 评论