`
testcs_dn
  • 浏览: 113747 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
文章列表
孙鑫VC++讲座笔记-(4)MFC消息映射机制的剖析   一,消息映射机制 1,消息响应函数:(例:在CDrawView类响应鼠标左键按下消息) 1)在头文件(DrawView.h)中声明消息响应函数原型。 //{{AFX_MSG(CDrawView) //注释宏 afx_msg void OnLButtonDown(UINT nFlags, CPoint point); //}}AFX_MSG //注释宏 说明: 在注释宏之间的声明在VC中灰色显示。afx_msg宏表示声明的是一个消息响应函数。 2)在源文件(DrawView.cpp)中进行消息映射。 ...
以下为具体的实现方法: 加入一个新类,类名:CMyButton,基类:CButton。 在头文件 MyButton.h 中加入以下变量和函数定义: private: int m_Style;//按钮形状(0-正常,1-当前,2-按下,3-锁定) BOOL b_InRect;//鼠标进入标志 CString m_strText;//按钮文字 COLORREF m_ForeColor;//文本颜色 COLORREF m_BackColor;//背景色 COLORREF m_LockForeColor;//锁定按钮的文字颜色 CRect m_ButRect; ...
hWnd=GetWindow(hDlg,GW_CHILD); if(hWnd == NULL || !::IsWindow(hWnd)) return FALSE; nIdFirst=GetDlgCtrlID(hWnd); do { GetClassName(hWnd,szBuf,256); //Edit子类化 if( _tcsicmp(szBuf,_T( "Edit ")) == 0) { //验证是否已经被永久映射 if(CWnd::FromHandlePermanent(hWnd) == NULL) { CEditEx * ...
源代码下载 一、简介 有时我们需要在非客户区(例如:标题栏)添加按钮,并对按钮作出响应,如下图所示: 为此我封装了两个类CNCButton和CNCButtonManager,CNCButton主要用于按钮绘制,CNCButtonManager用于按钮的管理并对非客户区的消息进行处理。如下是几个主要的非客户区消息: WM_NCHITTEST WM_NCACTIVATE WM_NCPAINT二、使用 2.1 首先我们需要引用两个类的头文件 #include"NCButtonManager.h" #include "NCButton.h" ...
转自: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1652126 Afx全局函数及MFC常见数据类型AfxBeginThread:开始一个新的线程 AfxEndThread:结束一个旧的线程 AfxFormatString1:类似printf一般地将字符串格式化 AfxFormatString2:类似printf一般地将字符 ...
subclassdlgitem   该函数用来子类化一个控件.   Subclass(子类化)是MFC中最常用的窗体技术之一。子类化完成两个工作:一是把窗体类对象attach到一个windows窗体实体中(即把一个窗体的hwnd赋给该类)。另外就是把该类对象的消息加入到消息路由中,使得该类可以捕获消息。   SubclassDlgItem可以把对话框中已有的控件与某个窗口对象动态连接起来,该窗口对象将接管控件的消息处理,从而使控件具有新的特性.SubclassDlgItem函数的声明为   BOOL SubclassDlgI ...
1.如何将对话框客户区的背景设成透明的? crybird (寒号鸟) http://expert.csdn.net/Expert/topic/2172/2172079.xml 描述:如题。客户区的背景能设成透明的么?如果有时间,非客户区的隐藏也讲讲啦! 回复人: bcpl(我是宇宙中的一粒沙子) BOOL CALLBACK EnumChildFunc(HWND hwnd, LPARAM lParam) { CRgn *pRgn = (CRgn*)lParam; CRect rcChild; ::GetWindowRect(hwnd, rcChild); CR ...
void CSkinAndLangDlg::OnNcPaint(UINT message, WPARAM wParam, LPARAM lParam) { HDC WindowDC = ::GetWindowDC(m_hWnd); // //取得整个窗体矩形 RECT WindowRect; GetWindowRect(&WindowRect); OffsetRect(&WindowRect, -WindowRect.left, - WindowRect.top); // //取得客户区矩形,并从WINDOWDC中排除不予绘制 // RECT ClientR ...
LANGID langid = GetSystemDefaultLangID(); //例如:2052 langid = GetUserDefaultLangID(); //例如:2052 CString msgFile; msgFile.Format(_T("%04xl"),langid); //例如:0804 TCHAR name[4*1024]={0}; GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SNATIVELANGNAME, name, sizeof(name)/sizeof(TCHAR)); // ...
  Windows API中有一个函数GetLocaleInfo可以用来获得系统信息比如系统语言, 货币符号等 代码如下: function TForm1.GetLocaleInformation(Flag: Integer): String; var pcLCA: Array[0..20] of Char; begin if( GetLocaleInfo(LOCALE_SYSTEM_DEFAULT,Flag,pcLCA,19) <= 0 ) then begin pcLCA[0] := #0; end; ...
文章来源:http://blog.csdn.net/yingzheng1983/article/details/3135858 WM_NCHITTEST 当光标移动到窗体,或鼠标按下,释放时,发送WM_NCHITTEST消息,如何鼠标不被捕获,消息在窗体得到光标之后发出,否则,消息发送到捕获到鼠标的窗体。 WM_NCHITTEST xPos = LOWORD(lParam); // 光标的水平位置(X) yPos = HIWORD(lParam); //光标的垂直位置(Y) Parameters(参数) xPos lParam的低次序数值(X的数值)。指定鼠标指针的 ...
想修改窗体的非客户区,首先就得明白为什么要修改非客户区,什么是非客户区 从窗体或控件来看,非客户区就是无法放置控件的区域,比如窗体的标题栏,和边框,菜单栏也是非客户区,菜单栏不是控件是画上去的 文本框的边框,滚动条区域都是非客户区 为什么要修改非客户区呢?? 原因是为了自绘,让边框好看一些,比如要加高窗体标题栏,就需要改非客户区,自绘非客户区会响应 WM_NCPAINT消息 在这个消息里,你可以进行窗体,控件,非客户区的自绘 好啦,现在转入正题,要修改非客户大小,必须处理 WM_NCCALCSIZE 有关于 WM_NCCALCSIZE 消息,可以去www.panshsoft ...
纯资源 DLL是仅包含资源(图标,位图,字符串,声音,视频,对话框等)的 DLL。使用纯资源DLL可以节约可执行文件的大小,可以被所有的应用程序所共享,从而提高系统性能。纯资源DLL的编写比普通的DLL要简单的多,使用纯资 ...
以下的代码在EXE中,执行无误。可是在DLL中FindResource返回的值就为0了,我用::GetLastError(),得出的值是1813,也就是取不到资源,这是为什么? BOOL ExtractFile(char *szZlibFile,DWORD dwRID) { HANDLE hFile = NULL ; HRSRC hRsrc = NULL ; HGLOBAL hGlobal = NULL ; DWORD dwResSize = 0, dwBytesWrite = 0, dwBytesRead = 0; PVOID pRsrc = NULL, pConf ...
MFC 正规DLL 2.5 MFC 正规DLL ——CWinApp 派生类 当用 AppWizard 产生正规 DLL 时, DllMain 函数将出现在框架内,并且我们会得到一个 CWinApp 的派生类 ( 和一个该类的全局对象 ) ,就像 EXE 程序的情形一样。我们可以通过重载 CWinApp::InitInstance 和 CWinApp::ExitInstance 函数获得控制。然而大多数情况下,我们不用重载这两函数。我们只要编写 C 函数,然后用 __declspec(dllexport) 修饰符导出这些函数 ( 或者在工程的 DEF 文件里加入函数入口 ) 即可。 ...
Global site tag (gtag.js) - Google Analytics