mfc的一些疑问
有几个问题首先,如何在一个基于对话框的应用程序中导入一张位图作背景,因为我在onpain中调用,结果一调用invalidate就没了,这是为何,然后拖一拖又回来了然后如何...
有几个问题
首先,
如何在一个基于对话框的应用程序中导入一张位图作背景,
因为我在onpain中调用,结果一调用invalidate就没了,这是为何,然后拖一拖又回来了
然后
如何改变鼠标为自己导入的位图
目的是在mosemove函数中调用到, 想做到一个移动到某个区域时鼠标变成其它形状 展开
首先,
如何在一个基于对话框的应用程序中导入一张位图作背景,
因为我在onpain中调用,结果一调用invalidate就没了,这是为何,然后拖一拖又回来了
然后
如何改变鼠标为自己导入的位图
目的是在mosemove函数中调用到, 想做到一个移动到某个区域时鼠标变成其它形状 展开
1个回答
展开全部
1.基于对话框的背景图,要将画法都写在OnPaint()中。
Invalidate()该函数的作用是使整个窗口客户区无效。窗口的客户区无效意味着需要重绘,调用Invalidate等函数后窗口不会立即重绘,这是由于WM_PAINT消息的优先级很低,它需要等消息队列中的其它消息发送完后才能被处理。如果要立即重画,用UpdateWindow( ).调用UpdateWindow函数可使WM_PAINT被直接发送到目标窗口,从而导致窗口立即重绘。
2.定义一个区域,当鼠标移动到该区域时使用SetCursor(AfxGetApp()->LoadCursor(图标ID));
当然首先要添加鼠标光标(Cursor)文件(*.cur)到工程中,然后需要为应用程序添加WM_SETCURSOR消息
用::SetCursor(AfxGetApp()->LoadCursor(图标ID));函数设置就可以了,该函数可以在任意处使用
Invalidate()该函数的作用是使整个窗口客户区无效。窗口的客户区无效意味着需要重绘,调用Invalidate等函数后窗口不会立即重绘,这是由于WM_PAINT消息的优先级很低,它需要等消息队列中的其它消息发送完后才能被处理。如果要立即重画,用UpdateWindow( ).调用UpdateWindow函数可使WM_PAINT被直接发送到目标窗口,从而导致窗口立即重绘。
2.定义一个区域,当鼠标移动到该区域时使用SetCursor(AfxGetApp()->LoadCursor(图标ID));
当然首先要添加鼠标光标(Cursor)文件(*.cur)到工程中,然后需要为应用程序添加WM_SETCURSOR消息
用::SetCursor(AfxGetApp()->LoadCursor(图标ID));函数设置就可以了,该函数可以在任意处使用
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询