摘要: #include <Windows.h>#include "resource.h"第三种方法:#define IDM_FILE_NEW 40001#define IDM_FILE_OPEN 40002#define IDM_FILE_SAVE 40003#define IDM_FILE_SAVE_AS 40004#define IDM_APP_EXIT 40005#define IDM_EDIT_UNDO 40006#define IDM_EDIT_CUT 40007#define IDM_EDIT_CO... 阅读全文
posted @ 2013-01-30 19:07 执迷不悟~ 阅读(1202) 评论(0) 推荐(0)
摘要: WM_DESTROY 是关闭程序 WM_CLOSE 是关闭窗口 WM_QUIT 是关闭消息环 WM_CLOSE和WM_DESTROY同属窗口消息,WM_QUIT则不在窗口消息之列。三者先后执行顺序是WM_CLOSE、WM_DESTROY、WM_QUIT 但需要注意的是MFC窗口默认取消按钮函数OnCancel()是不会触发WM_CLOSE消息,只触发WM_DESTROY。WM_CLOSE: 在系统菜单里选择了“关闭”或者点击了窗口右上角的“X”按钮,你的窗口过程就会收到WM_CLOSE。DefWindowProc对WM_CLOSE的处理是调用DestroyWindow。当然,你可以... 阅读全文
posted @ 2013-01-30 18:57 执迷不悟~ 阅读(7923) 评论(0) 推荐(4)
摘要: 1、string转wstringwstring s2ws(const string& s){ _bstr_t t = s.c_str(); wchar_t* pwchar = (wchar_t*)t; wstring result = pwchar; return result;}2、wstring转stringstring ws2s(const wstring& ws){ _bstr_t t = ws.c_str(); char* pchar = (char*)t; string result = pchar; return result;}3、string转cstring 阅读全文
posted @ 2013-01-24 12:18 执迷不悟~ 阅读(11888) 评论(0) 推荐(0)
摘要: MFC程序中调用CWnd::CenterWindow就可以实现窗口居中,但是纯SDK编程中没有CenterWindow这个函数,需要自定义一个。Google到一个比较好的实现。自定义函数一:void CentreWindow(HWND hwnd){ RECT winrect, workrect; int workwidth, workheight, winwidth, winheight; SystemParametersInfo(SPI_GETWORKAREA, 0, &workrect, 0); workwidth = workrect.right - workrect.left; 阅读全文
posted @ 2013-01-17 14:23 执迷不悟~ 阅读(612) 评论(0) 推荐(0)
摘要: 先看下面三条语句:(1)#define Conn(x,y) x##y(2)#define ToChar(x) #@x(3)#define ToString(x) #x(1)##,连接操作符x##y表示什么?表示x连接y,举例说:int n = Conn(123,456); 结果就是n=123456;char* str = Conn("asdf", "adf")结果就是 str = "asdfadf";(2)#@,字符化操作符只能用于有传入参数的宏定义中,且必须置于宏定义体中的参数名前。作用是将传的单字符参数名转换成字符,以一对单引用括 阅读全文
posted @ 2013-01-09 20:10 执迷不悟~ 阅读(717) 评论(0) 推荐(0)
摘要: 方法一:调用CWinApp类的成员函数SetDialogBkColor来实现。 (这个函数已经废弃)void SetDialogBkColor(COLORREF clrCtlBk = RGB(192, 192, 192), COLORREF clrCtlText = RGB(0, 0, 0));其中函数的第一个参数指定了背景颜色,第二个参数指定了文本颜色。在InitInstance()中添加如下代码:SetDialogBkColor(RGB(0,0,255),RGB(255,0,0)); 值得注意的是:在调用DoModal()之前必须先调用SetDialogBkColor。这种方法经过笔者验. 阅读全文
posted @ 2013-01-09 16:10 执迷不悟~ 阅读(41000) 评论(0) 推荐(1)
摘要: 很多同学在绘制UI时喜欢将窗口或者对话框设置成无边框无标题栏样式,然后在客户区里就可以”胡作非为“了,想干什么都行然而新手们包括笔者以前都遇到的一个问题是:对于对话框来说直接这样设置:ModifyStyle(WS_CAPTION | WS_THICKFRAME, 0, SWP_FRAMECHANGED);是不完美的,他们会发现在对话框的情况下,那个border还是存在,最后怎么设置都不可行,对于一般从CWnd派生然后用Create方法创建的窗口却没什么问题。解决方案:这里我告诉你如何设置,以下代码适用所有窗口,设置后边框没了,标题栏也没了纯净的客户区就美丽的显示在你的面前: DWORD ... 阅读全文
posted @ 2013-01-09 13:26 执迷不悟~ 阅读(2896) 评论(0) 推荐(0)
摘要: 资源 分配函数 清除函数 需要手动清除?================================================================================================== Accele... 阅读全文
posted @ 2013-01-08 10:41 执迷不悟~ 阅读(473) 评论(0) 推荐(0)
摘要: 引子前面的两篇博文分别介绍了通过剪贴板和通过邮槽来实现进程之间的通信,其中剪贴板呢,是用来实现本地两个进程之间的通信,而邮槽则既可以实现本地两个进程之间的通信,也可以实现本地进程和服务器进程的通信,当然,上面这两种方式都是有局限性的,比如剪贴板就只能实现本地进程之间的通信,而在邮槽中,虽然是既可以实现本地进程之间的通信,又能实现本地进程和远程服务器进程的通信,但是使用邮槽的话,服务端只能接收数据,不能发送数据,而客户端只能发送数据而不能接收数据。而本篇博文介绍的这个通过匿名管道来实现进程之间的通信的话,局限性就显得更加严重了,第一:匿名管道只能实现本地进程之间的通信,不能实现跨网络之间的进程间 阅读全文
posted @ 2012-12-17 19:13 执迷不悟~ 阅读(577) 评论(0) 推荐(0)
摘要: 引子好,到这里呢,就需要介绍实现进程间通信的第四种方式了,也就是通过命名管道来实现,前面介绍的那三种方式呢,都是有缺陷或者说局限性太强,而这里介绍的命名管道相对来说,在这方面就做得好很多了,比如,剪贴板的话只能实现本机上进程之间的通信,而邮槽的话虽然是可以实现跨网络之间的进程的通信,但麻烦的是邮槽的服务端只能接收数据,邮槽的客户端只能发送数据,太悲剧了,而对于匿名管道的话,其也只能实现本机上进程之间的通信,你要是能够实现本机进程间的通信也就算了,关键是它还只用来实现本地的父子进程之间的通信,也太局限了吧?而这里介绍的这个命名管道的话,就和他们有些不同了,在功能上也就显得强大很多了,至少其可以实 阅读全文
posted @ 2012-12-17 17:55 执迷不悟~ 阅读(277) 评论(0) 推荐(0)