改了之后,菜单不能用了,而且控件的位置发生了变化(我是用CreateWindow来创建的控件)因为我用Popup风格的时候,我画在对话框上面的图片,如果被遮一下,背景不能自动更新,如弹出一下菜单,如果遮住了图片,则图片不会被刷新,就留下来了一块空白,所以我想改成overlapped风格的,但是一改,发现问题太多了希望大家给点意见,或者在popup风格下解决不能刷新的问题
我用IImage来显示的图片,可能用Static控件来显示图片的话,没法画上去吧,因为它要使用Bitmap,并且有Bitmap的句柄才可以。不知道有没有其它方法,将其显示在某个控件上面也行。非常感谢!!!
我用IImage来显示的图片,可能用Static控件来显示图片的话,没法画上去吧,因为它要使用Bitmap,并且有Bitmap的句柄才可以。不知道有没有其它方法,将其显示在某个控件上面也行。非常感谢!!!
解决方案 »
- 当SHGetFileInfo遇到中文标点“…”,就出错了
- 【MFC】怎么使 CFileFind 不按字母顺序查找文件?
- 从对话框向页面提交post后,返回值得问题??
- 有没有什么第三方界面库可以实现软件界面的背景透明,就像VISTA系统下面的areo主题一样
- 程序调试问题?
- 类与类相互包含怎么办?
- 带参数宏定义的问题
- 入门菜鸟的问题~CFile::Read、CFile::Write能不能读写double型的数据?
- mfc两个控件重叠,我想让一个始终在前面。
- 急问VC如何实现控制条码打印机???在线等大家帮忙
- 求助, 获取同名进程的CPU占用
- 有兴趣的进来看看,用wininet登陆网站提交表单的问题
2、需要现实图片,可以自己从CWnd派生一个类,专门用来现实图片,图片的处理可以用GDI+,如果楼主需要这个类,留下E-MAIL
哦,呵呵,我是看到网上有人说到有可能是因为没有设为Overlapped风格,可能导致这样的情况我以前都没注意过这两个风格,也不知道是什么原因造成的,所以我想试一下,但发现改了之后问题更多……我是直接用GetDC来获取的对话框窗口的DCHDC hdc = GetDC(hDlgWnd);
RECT rt;
GetClientRect(&rt);
//然后再hdc上画图这样画出来之后,图片就不能自动重画
RECT rt;
GetClientRect(&rt);
//然后再hdc上画图 这些代码你放在哪里了?放到onpaint()里吧
因为我的程序是在接收到某个事件响应的时候才去画图,而且图片并不是固定的
即一定是被动的。主动做的只能是触发绘制即刷新(Invalidate)。一般是图形在内存中有对应的内存数据模型,修改数据模型后,
再刷新视口、触发绘制过程。绘制过程当中除非绝对必要,应
避免对数据模型做任何更改。