如何在弹出的对话框窗口中绘图? 请教:在程序中弹出一个窗口并在里面绘图,我的做法想新建立一个CDialog类窗口然后在里面绘图,但是OnPaint()函数不是虚函数.该如何实现呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 添加WM_PAINT的消息处理函数就可以了。 比如说CMyDialou dlg; dlg.Domodal();怎么去获得dlg的CDC?我尝试了无数函数啊~,请指教 比如说CMyDialou dlg; dlg.Domodal();怎么去获得dlg的CDC?我尝试了无数函数啊~,请指教上面的函数是在哪里调用的? 一定是在CWND派生类中为了响应某个命令而调用的吧?那绘图在哪个类里调用? 不是在CWND派生类中, 而是在DIALOG类中写这个函数. 你自定义了dialog,你可以添加该对话框的消息处理函数WM_PAINT消息由你自己处理也就是添加OnPaint函数,在这个函数里会有你要的DC的 楼主可能是想在框架窗口类中调用绘图函数给对话框画图吧?应该把这些类的关系把握好, 从整体出发, 不应该类多了就把思路搞乱了. 在DIALOG类中的ONPAINT中画图! 那个类继承CDIALOG,如果自己添加ONPAINT()函数,就意味着改写原来的ONPAINT函数,而它并非虚函数.问题是这样的:我自己有一个工程,假设是单文档应用程序,单击某一菜单项后弹出一窗口并在里面显示一图形。我想通过弹出一个无模式对话框,并在里面实现图形显示。 消息的传递不是以虚函数来层层继承的如果你在自己的类中有定义了该消息对应的函数,它就执行该类这个函数,如果没有,就往父类传递。所以,你在你自己定义的类中添加该消息的处理函数既可,该消息发生时就调用你定义的那个函数。故你只要添加WM_PAINT消息的处理函数既可。 To qiangv(我穿了2条裤衩):怎么添加这个消息处理函数呢?能说得具体点吗,小弟比较菜~ 准备加分咯 3Q everybody~ 顺便问一下,如果我想弹出一个只带标题栏的空白窗口(没有菜单,背景为白色的那种),应该怎么做呢? 运道!to 楼上.那个不是对话框,是sdi. 在该自定义的窗口类中加一个WM_PAINT消息即可 你说的是只有标题拦和下面白色区域组成的窗口吗?那是sdi只不过去掉了菜单和任务栏等等而已.最简单的就是win32项目->选择helloworld.(不知道是不是你要的效果.)对话框也可以,把控件全部去掉,背景刷新为白色不就可以了,如果还不够丑陋,把一些属性效果去掉. 你可以在CMyDialou对话框使用擦除背景的函数画图呀! 你想怎么画就怎么画!我上次模仿MessageBox做了一个自定义的消息框,可以改变你所想要改变的东西呀! 呵呵,楼主是追求丑陋的效果呀如果是对话框,你在类视图中找到该对话框的类点右键,选择添加消息处理函数(英文应该是Message Handle之类的吧)然后在左边列表中选择WM_PAINT在右边按ADD AND EDIT就OK了 华为简历状态 如何实现网页与vc的数据传递 CImageList里关于色彩的问题 现在图形处理这个领域有什么热点? 急问求救:include 一个库头文件,编译后此文件报错,原因为何? 几个window基础性问题 局域网,udp,接受,发送,肯定会丢包吗? 那位大哥知道函数钩子的资料,我的编译不过去 它国语言的资源不能打开,如何解决? ::GetWindowText的第一个参数 MFC自制ACTIVEX控件,在输入的时候总是有梆梆的声音,请问如何消除? 如何实现在无模式对话框建立时就在上面绘图?
那绘图在哪个类里调用? 不是在CWND派生类中, 而是在DIALOG类中写这个函数.
WM_PAINT消息由你自己处理
也就是添加OnPaint函数,在这个函数里会有你要的DC的
应该把这些类的关系把握好, 从整体出发, 不应该类多了就把思路搞乱了.
在DIALOG类中的ONPAINT中画图!
如果你在自己的类中有定义了该消息对应的函数,它就执行该类这个函数,如果没有,就往父类传递。
所以,你在你自己定义的类中添加该消息的处理函数既可,该消息发生时就调用你定义的那个函数。
故你只要添加WM_PAINT消息的处理函数既可。
怎么添加这个消息处理函数呢?能说得具体点吗,小弟比较菜~ 准备加分咯
最简单的就是win32项目->选择helloworld.(不知道是不是你要的效果.)
对话框也可以,把控件全部去掉,背景刷新为白色不就可以了,如果还不够丑陋,把一些属性效果去掉.
如果是对话框,你在类视图中找到该对话框的类
点右键,选择添加消息处理函数(英文应该是Message Handle之类的吧)
然后在左边列表中选择WM_PAINT
在右边按ADD AND EDIT
就OK了