返回首页 我的新博客
摘要: 在图形图象处理编程过程中,双缓冲是一种基本的技术。我们知道,如果窗体在响应WM_PAINT消息的时候要进行复杂的图形处理,那么窗体在重绘时由于过频的刷新而引起闪烁现象。解决这一问题的有效方法就是双缓冲技术。 因为窗体在刷新时,总要有一个擦除原来图象的过程OnEraseBkgnd,它利用背景色填充窗体绘图区,然后在调用新的绘图代码进行重绘,这样一擦一写造成了图象颜色的反差。当WM_PAINT的响... 阅读全文
posted @ 2009-03-09 22:46 buffer的blogs 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 自动启动代码: void CServerApp::SetAutoRun() { HKEY hKey; char* szRegpath = "Software\\Microsoft\\Windows\\CurrentVersion\\Run"; long lRet; // 打开注册表 lRet = Reg... 阅读全文
posted @ 2009-03-09 22:44 buffer的blogs 阅读(503) 评论(0) 推荐(0) 编辑
摘要: 【问题】在以前的双缓冲Demo中,发现这个在移动一张牌的时候,效率还能忍受过去。但是当应用双缓冲技术到显示多张纸牌的时候,我们会发现效率已经不能再让人忍受了。移动纸牌发生飘移;发牌的时候,当把定时器间隔修改为1ms的时候,速度还是很慢。为此需要对双缓冲的效率进行改善。 【改善措施】经过调查,改善的措施具体如下: 1. 将创建内存画布的工作移动到OnSize函数中去做,也就是当窗口大小发生变化的时... 阅读全文
posted @ 2009-03-09 22:42 buffer的blogs 阅读(642) 评论(1) 推荐(1) 编辑
摘要: 把window线程间传送消息仔细的看了一遍,觉得以前的理解很不深刻。说一说对PostThreadMessage的理解。   PostThreadMessage是一个线程体发送一个消息到指定的线程ID,其原型如下: BOOL PostThreadMessage( DWORD idThread, UINT Msg, WPARAM wParam, LPARAM lParam ); 这个函数既可以发送消息... 阅读全文
posted @ 2009-03-09 22:40 buffer的blogs 阅读(1892) 评论(0) 推荐(0) 编辑
摘要: 消息映射、循环机制是Windows程序运行的基本方式。VC++ MFC 中有许多现成的消息句柄,可当我们需要完成其它的任务,需要自定义消息,就遇到了一些困难。在MFC ClassWizard中不允许添加用户自定义消息,所以我们必须在程序中添加相应代码,以便可以象处理其它消息一样处理自定义消息。通常的做法是采取以下步骤:   第一步:定义消息。   推荐用户自定义消息至少是WM_USER+100,因... 阅读全文
posted @ 2009-03-09 22:37 buffer的blogs 阅读(543) 评论(0) 推荐(0) 编辑
摘要: 1、 对于一个窗口如何进行操作呢,首先要得到其使用句柄,我们可以用FindWindow()函数来获取当前窗口句柄,具体使用如下:   HWND hFig = ::FindWindow(NULL,HWND);   如果得到找到,则返回窗口的句柄,否则返回NULL。 当然我们可以使用 SetWindowPos(HWND hWnd, HWND hWndIsertAfter, int X, int Y, ... 阅读全文
posted @ 2009-03-09 22:35 buffer的blogs 阅读(11113) 评论(1) 推荐(0) 编辑
摘要: 1. 首先定义一个消息代码 #define WM_DEBUG WM_USER + 1999 2. 在窗口头文件中添加 class CStreamServerDlg : public CDialog { // Generated message map functions //} AFX_MSG afx_msg void OnDebug(WPARAM wParam, LPARAM lPa... 阅读全文
posted @ 2009-03-09 22:14 buffer的blogs 阅读(106) 评论(0) 推荐(0) 编辑