windows+MFC
tracing
无
展开
-
如何在创建MDI窗口时不新建子窗口
我本来想在创建窗口的时候杀掉子窗口,但再次新建的时候子窗口的编号就变成**2了,然后BAIDU了一下,发现MFC提供了这样一个结构CCommandLineInfo CCommandLineInfo cmdInfo; cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing; ParseCommandLi原创 2007-04-04 10:44:00 · 1775 阅读 · 0 评论 -
mingw32-gcc.exe: error: CreateProcess: No such file or directory的问题
MinGW的安装原创 2015-01-23 15:09:39 · 28582 阅读 · 4 评论 -
OnPaint和OnDraw的区别
问题:我在视图画的图象或者文字,当窗口改变后为什么不见了?OnDraw()和OnPaint()两个都是解决上面的问题,有什么不同?答:OnDraw()和OnPaint()好象兄弟俩,因为它们的工作类似。至于不见了的问题简单,因为当你的窗口改变后,会产生无效区域,这个无效的区域需要重画。一般Windows会发送两个消息WM_PAINT(通知客户区 有变化)和WM_NCPAINT(通知非客户区有变化)转载 2008-08-21 12:42:00 · 34024 阅读 · 6 评论 -
立即显示或隐藏鼠标的方法,偶然发现的一个方法,兴奋
我要实现一个功能,当鼠标移动到客户区时就隐藏鼠标,移出来就显示鼠标,本来用的是计时器,每隔10ms就判断下鼠标是否在客户区,在的话就隐藏,使用ShowCursor 这个函数,使用ShowCursor时还要注意内置display counter的计数,执行完一次ShowCursor(TRUE)或者ShowCursor(FALSE)之后要确保display counter的计数>=0,不然就不原创 2008-04-26 09:30:00 · 4858 阅读 · 3 评论 -
8位位图的存储方法
位图的结构由4部分组成,位图文件头、位图信息头、颜色表和颜色数据,32位或者24位不需要颜色表即调色板,8位则需要填写调色板数据,另外要注意的就是8位位图的一行的跨度必须是4的整数倍,否则就显示不出正确的图形。代码如下: BOOL SaveBitmap8(HANDLE hFile, int nWidth, int nHeight, RGBQUAD* pRgbquad, BY原创 2007-12-28 13:24:00 · 4729 阅读 · 0 评论 -
关于WINDOWS画图中的空心图形的画法
WINDOWS中的画图,边框和边框内部是分开处理的,画笔是负责画边界的点的,画刷是负责填充内部区域的,所以只要把空心画刷选入设备,就能画出空心图形,如空心矩形或者空心圆角矩形,用SetROP2(R2_NOTXORPEN)的模式也能画出空心矩形,但是由于背景的原因,边界的颜色不好控制。 以下是代码,很简单: HBRUSH hBrush = (HBRUS原创 2007-11-02 10:28:00 · 3637 阅读 · 0 评论 -
CListBox频繁插入删除数据时,闪烁的问题
当频繁往listbox里插入删除数据时,会出现闪烁的情况,这时就需要重绘listbox,当然还是用到双缓冲技术,代码如下: //重载OnEraseBkgndBOOL CMyListBox::OnEraseBkgnd(CDC* pDC) { //直接返回,不重绘背景 return TRUE;}//重载OnPaintvoid CMyListBox:原创 2007-10-10 08:55:00 · 4336 阅读 · 1 评论 -
UpdateWindow
只将窗口显示区域标记为无效以产生WM_PAINT消息,对于某些应用程序来说也许不是完全令人满意的选择。在呼叫InvalidateRect之后,Windows将WM_PAINT消息放入消息队列中,最后由窗口消息处理程序处理它。然而,Windows将WM_PAINT消息当成低优先级消息,如果系统有许多其它的动作正在发生,那么也许会让您等待一会儿工夫。这时,当对话框消失时,将会出现一些空白的「洞转载 2007-10-20 09:14:00 · 1230 阅读 · 0 评论 -
关于memset的一点误解
memset函数的原型为:void *memset(void *, int , unsigned),这个函数可以一字节一字节地把整个数组设置为一个指定的值。第1个参数void *表示地址,用于接收数组的起始地址, 第2个参数int 是设置数组每个字节的值。第3个参数是数组的长度(字节数,不是元素个数)。 一直以来我都把第二个参数当成了数组元素的值,结果今天就犯了错原创 2007-10-19 19:51:00 · 1066 阅读 · 0 评论 -
STL初体验
在写程序的时候经常碰到一些小算法,虽然简单但又不得不写,最近发现STL可以使用简单的语句轻松的解决,刚开始使用还真有点兴奋。 比如这个例子:要查找一个向量(数组之类)中,满足某条件的元素typedef struct tagPOSINFO...{ int nStartPos; //起始位置 int原创 2007-09-08 09:11:00 · 844 阅读 · 0 评论 -
CDialog中OnKeyDown事件和OnChar事件实现
void CTestDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) { CString str; str.Format("%d ,%c",nChar,nRepCnt);转载 2007-06-08 07:58:00 · 2641 阅读 · 0 评论 -
遍历文档模板、文档和视图
在网上摘抄的一段代码,它完成遍历文档模板、文档和视图的功能CMyApp *pMyApp = (CMyApp*)AfxGetApp(); //得到应用程序指针POSITION p = pMyApp->GetFirstDocTemplatePosition();//得到第1个文档模板while (p != NULL) //遍历文档模板{ CDocTemplate *pDocTemplate = p转载 2007-05-26 11:56:00 · 1226 阅读 · 0 评论 -
启动RPC服务
RPC服务太关键了,我搞了一个早上都是因为这个服务的原因,具体做什么的我也不知道,打开磁盘管理的时候老是提示无法连接RPC服务器,启动RPC服务也没用最后终于BAIDU 到了对我有用的资料,希望对大家也有用A、 开始/运行:regedit,找到下面的项:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Hardware Profiles/Current原创 2007-05-06 09:48:00 · 3414 阅读 · 1 评论 -
今天发现了一个影响速度的问题,开心~~~~~
我写了个双重循环,结果效率极低,半天才执行完毕,我刚开始我以为是双重循环的问题, 然后我把双重循环改成单循环,问题依旧,我就纳闷了,我循环个500W次效率也没这么低挖,何况这次10几W次,然后就一条语句一条语句注释掉,看到底是哪条语句出了问题,工夫不负有心人啊,终于被我找到了,而且这句话是我最没想到会出问题的一句话,那就是TRACE 我做了这样一个试验,写了一段代码,插入到对原创 2007-05-04 16:29:00 · 1262 阅读 · 0 评论 -
种子填充算法
1、递归填充 考虑四连通区域,坐标系x轴朝右为正,y轴朝下为正 void Fill4(CPoint point, int nOldColor, int nNewColor)...{ if(GetPixel(point) == nOldColor) ...{ //填充左边的点 CPoint ptLeft = point;原创 2007-04-28 15:11:00 · 14732 阅读 · 1 评论 -
根据客户区大小反推窗口大小
客户区 窗口大小原创 2015-10-08 08:30:36 · 1092 阅读 · 0 评论