
界面编程
up5p5mm
这个作者很懒,什么都没留下…
展开
-
WM_SYSCOMMAND Notification(WM_SYSCOMMAND 系统命令消息)应用
WM_SYSCOMMAND消息是MFC预定义好的一组命令消息,框架有默认的处理方式,比如点击窗口右上方的关闭按钮,发送SC_CLOSE消息,用以关闭窗口。系统命令消息包括以下几种:SC_CLOSE Closes the window. SC_CONTEXTHELP Changes the cursor to a question mark with a pointer. If the u原创 2008-04-04 09:09:00 · 2347 阅读 · 0 评论 -
CDialogBar
1.在MainFrame的OnCreate中用CDialogBar的Create创建CDialogBar即可显示,EnableDocking和DockControlBar来设置是否可以停靠。注意必须是成员变量或堆上的对象来Create,不能用栈上的对象来create2.CDialogBar上的按钮等控件默认是灰色的,必须创建DialgBar资源对应的一个类,在类中写如下代码: ON_原创 2008-07-06 10:52:00 · 733 阅读 · 0 评论 -
动态改变鼠标光标
1.相应WM_SETCURSOR消息,在响应函数OnSetCursor中改变光标,鼠标在窗口中移动时都会发送这个消息 BOOL CFGERWTFEWTFView::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message){ // TODO: 在此添加消息处理程序代码和/或调用默认值 SetCursor(AfxGetApp()->Load原创 2008-06-29 08:57:00 · 954 阅读 · 0 评论 -
自绘控件的方法
1.子类化控件 2.重写OnPaint:所有控件都是在OnPaint里画出来的,我们可以不调用父类的OnPaint,直接自己画控件。 3.重写控件能响应的各种鼠标键盘事件,通过状态位在OnPaint中画出不同事件下控件的样子,比如鼠标按下的状态对应宏BUTTON_DOWN,在响应函数中调用刷新函数OnPaint,OnPaint根据BUTTON_DOWN在界面上画出按钮按下的样子原创 2008-08-23 12:00:00 · 1241 阅读 · 0 评论 -
GDI画图的调用顺序
1.在内存中创建一个最终输出DC兼容的DC(CreateCompatibleDC) 2.在内存创建一个和最终输出DC兼容的bitmap(CreateCompatibleBitmap) 3.把2选入1(select) 4.画图 5.BitBlt到终输出DC 6.断开1和2的关联(select) 7.销毁2(DeleteObject) 8.销毁原创 2008-08-23 11:54:00 · 785 阅读 · 0 评论 -
界面编程笔记1
1.只要命令ID一样,响应函数就是一样的,所以工具栏按钮可以和菜单项设同一个ID,这样就可以相应同样的动作2.可以先用CStatic在一个dialog上框出一个区域,再把控件create上去3.InvalidateRect: 该函数向指定的窗体添加一个无效矩形以用来触发WM_PAINT更新该区域。窗口客户的无效矩形所代表的区域必须会被重绘 在Onpaint函数中可以用CDC来获取无效矩原创 2008-08-23 11:37:00 · 545 阅读 · 0 评论 -
UI界面设计闪烁问题的解决办法
一般的windows 复杂的界面需要使用多层窗口而且要用贴图来美化,所以不可避免在窗口移动或者改变大小的时候出现闪烁。先来谈谈闪烁产生的原因原因一:如果熟悉显卡原理的话,调用GDI函数向屏幕输出的时候并不是立刻就显示在屏幕上只是写到了显存里,而显卡每隔一段时间把显存的内容输出到屏幕上,这就是刷新周期。一般显卡的刷新周期是 1/80秒左右,具体数字可以自己设置的。这样问题就来了原创 2008-08-23 11:14:00 · 904 阅读 · 0 评论 -
GDI资源的释放
1.GetDC,GetWindowDC一定要ReleaseDC 2.CreateDC一定要DeleteDC。 3.Create出来的GDI对象一定要用DeleteObject释放,如CreateBitmap,CreateFont等 4.释放DC时,一定要保证没有自己创建的GDI对象还选在DC里 5.释放GDI对象时,确保它没有选进DC 6.GetStock原创 2008-08-23 11:46:00 · 1391 阅读 · 1 评论 -
界面编程笔记2
1.CDC是用于在设备上下文(Device Context,DC)中绘制图形的类,CGdiObject是用于绘制的类(一些GDI对象)2.选到CDC的GDI对象,通过落选(把老的或库存的GDI选景去替代新的)可在落选后自动释放。void CMyView::OnDraw(CDC *pDC){ CPen newpen(....); CPen pOldPen = pDC->SelectObject原创 2008-08-23 11:43:00 · 622 阅读 · 0 评论 -
逻辑坐标,设备坐标,窗口,视口
综述:1.画图在逻辑坐标中画,使用逻辑单位,显示图形在物理坐标中显示 2.屏幕上有三种不同的物理坐标,每种物理坐标是固定死的,原点,XY轴方向都不变 1、客户区域坐标,包括应用程序的客户区域,客户区域的左上角为(0, 0)。 2、屏幕坐标,包括整个屏幕,屏幕的左上角为(0, 0)。屏幕坐标用在WM_MOVE消息中(对于非子窗口)以原创 2008-07-05 17:54:00 · 3836 阅读 · 2 评论