123456

 

06 2011 档案

怎么让模态对话框最小化时,主窗口也最小化
摘要:思路,在模态对话框最小化时,激活主窗口,同时启用一个定时器,在定时器中判断 到主窗口变化大小时(从最小化到其他状态),把主窗口禁止,代码如下:void CXXDlg::OnBtnMini(){ AfxGetMainWnd()->EnableWindow(TRUE); AfxGetMainWnd()->ShowWindow(SW_MINIMIZE) ; if (m_Timer == 0) m_Timer = SetTimer(SLIDER_TIMER,100,NULL) ;}void CXXDlg::OnTimer(UINT_PTR nIDEvent){ if (nIDEvent = 阅读全文

posted @ 2011-06-30 16:25 hgy413 阅读(359) 评论(0) 推荐(0)

HDC中的前景色与背景色
摘要:HDC中的前景色与背景色在制作透明位图时,经常用到单色图(遮罩图,两色图)将他与目标位图进行"与""或"等操作就能得到想要的透明效果,在其中用到的最多的就是BitBlt这个函数,另外,在使用之前是要对目标位图进行前景和后景颜色的设置,为什么呢?请看MSDN的解说:单色图与彩色图之间的转换 模拟透明的方法也包含基于windows的单色图向彩色图转换的机制,反之亦然。Windows概念中的文本颜色(前景色)和背景色被用来映射两种格式的转换。在blt操作中,当dest为彩色图,src为单色图时,在进行ROP(SRCAND,SRCAND,SRCINVERT,SR 阅读全文

posted @ 2011-06-24 09:59 hgy413 阅读(399) 评论(0) 推荐(0)

把一个bmp转换成cur显示出来(掩码mask)
摘要:创建一个ICON需要两个掩码位图,AND and XOR masks这个可以从typedef struct _ICONINFO { BOOL fIcon; DWORD xHotspot; DWORD yHotspot; HBITMAP hbmMask; HBITMAP hbmColor; } ICONINFO; 中MSDN的解释看到,代码如下://////////////////////////////////////////////////////////////////////// GetMaskBitmaps// Function to AND and XOR ... 阅读全文

posted @ 2011-06-23 16:24 hgy413 阅读(360) 评论(0) 推荐(0)

怎么设置IE代理服务器
摘要:其实就一个注册表的简单操作 在HKEY_CURRENT_USER//Software//Microsoft//Windows//CurrentVersion//Internet Settings//ProxyServer中有几个值ProxyEnable不为0表示当前IE使用代理服务器,ProxyServer表示代理服务器的值,直接贴代码,代码还有部分不完整处,支持多字节和UNICODEBOOL SetHttpProxy(CString ip, UINT port){ CString l_just; l_just.Format(TEXT("http=%s:%d"), ip.L 阅读全文

posted @ 2011-06-22 17:51 hgy413 阅读(305) 评论(0) 推荐(0)

MFC DLL导出类
摘要:方法1: 在VC上new一个名为dll的MFC DLL工程。 第一步,创建一个interface.h文件来定义接口,代码如下: //file interface.h #ifndef _INTERFACE_H_ #define _INTERFACE_H_ interface ITest { virtual int Print()=0; virtual ~ITest(){}; }; ITest* DllCreateTest(); void DllDestroyTest(ITest *pTest); #endif 第二步,定义一个继承自接口interface的类CTest,代码如下: //file. 阅读全文

posted @ 2011-06-15 10:54 hgy413 阅读(318) 评论(0) 推荐(0)

DDK
摘要:想要实现类似设备管理器的功能,其实也不是很难,无非就是调用一些API函数,就像本文描述的,采用的API函数就是SetupDi系列的函数。不过这类函数有很多,具体的请参见MSDN,而实现设备启用、停用仅需要用到的就只有5个函数:SetupDiGetClassDevs // 获取设备信息集SetupDiEnumDeviceInfo //从设备信息集中枚举每个设备的具体信息SetupDiGetDeviceRegistryProperty // 从注册表中读取PnP设备的属性SetupDiSetClassInstallParams // 设置(包括取消)设备类的安装参数SetupDiCallClass 阅读全文

posted @ 2011-06-14 18:53 hgy413 阅读(702) 评论(0) 推荐(0)

如何控制一个程序只能有一个进程
摘要:EnumWindows的使用BOOL EnumWindows( WNDENUMPROC lpEnumFunc, LPARAMlParam );该函数枚举所有屏幕上的顶层窗口,并将窗口句柄传送给应用程序定义的回调函数,其中lParam是传递给lpEnumFunc的参数。回调函数返回FALSE将停止枚举,否则EnumWindows函数继续到所有顶层窗口枚举完为止。例如获取所有的桌面窗口句柄,并将其值放到CListBox中:进程统指应用程序的一个实例两个问题:1.在程序的第二个实例启动时,如何发现该程序已有一个实例在运行2.如何将第一个实例激活,而第二个实例退出由于windows并没有给内核对象定义 阅读全文

posted @ 2011-06-14 15:49 hgy413 阅读(434) 评论(0) 推荐(0)

导航