请问如何改变对话框的背景色和在其上画图 如题,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以在任何时候任意改变对话框背景任意区域的颜色。BOOL CCpDlg::OnEraseBkgnd(CDC *pDC){ pDC dc(this); dc.SetBkMode(TRANSPARENT); CRect rt; GetClientRect(&rt); CBrush cbSel; cbSel.CreateSolidBrush(RGB(223, 233, 243)); dc.FillRect(&rt, &cbSel); return TRUE;}如果要画图,直接使用dc的函数实现各种绘图。 在CXXXApp中的InitInstance()函数中添加 SetDialogBkColor(RGB(0,192,192));该语句需要放在int nResponse = dlg.DoModal();前 画圆操作你可以添加在OnPaint()函数中 to aids001(菜鸟) "直接用SetBkColor为啥不行呀"其实你都已经知道了,为何还问?这样有炒分的嫌疑哟!使用SetBkColor这个函数是可以设置对话框的背景色,但在对话框显示以后就不能再修改它的背景色了。使用OnEraseBkgnd(CDC *pDC)消息映射可以在对话框显示后任意修改任意大小范围的背景色,并且在其中使用dc的对象函数可以实现你的画图功能,即画图作为背景,而且比OnPaint()闪烁更小。 对于“直接用SetBkColor为啥不行呀”jeremyhit(春子) 已经答了: SetDialogBkColor(RGB(0,192,192));该语句需要放在int nResponse = dlg.DoModal();前 在对话框上画图关键是得到对话框的dc,CClientDC dc(this);然后用这个dc就可以画图了。 高手请看一下,非模态对话框调用,程序崩溃 改变文本框的字体 窗口分割通信问题,急 高分请教 如何把想要保护的变量封装成一个类或者一个宏什么的方便以后调用,怎么做那? dll问题 如何检测局域网内的所有网段? 如何去除加入Solution中的ActiveX控件? 请教如何用ADO创建数据库以及怎么创建表 一个openGl的源代码但不能出现图形你高手 help! help ! 怪事:关于在ListView中显示动态图标的问题!!! 如何显示文件夹图标和文件图标??? 关于多线程和通信的问题
BOOL CCpDlg::OnEraseBkgnd(CDC *pDC)
{
pDC dc(this);
dc.SetBkMode(TRANSPARENT);
CRect rt;
GetClientRect(&rt);
CBrush cbSel;
cbSel.CreateSolidBrush(RGB(223, 233, 243));
dc.FillRect(&rt, &cbSel);
return TRUE;
}
如果要画图,直接使用dc的函数实现各种绘图。
该语句需要放在int nResponse = dlg.DoModal();前
其实你都已经知道了,为何还问?这样有炒分的嫌疑哟!
使用SetBkColor这个函数是可以设置对话框的背景色,但在对话框显示以后就不能再修改它的背景色了。
使用OnEraseBkgnd(CDC *pDC)消息映射可以在对话框显示后任意修改任意大小范围的背景色,并且在其中使用dc的对象函数可以实现你的画图功能,即画图作为背景,而且比OnPaint()闪烁更小。
jeremyhit(春子) 已经答了: SetDialogBkColor(RGB(0,192,192));
该语句需要放在int nResponse = dlg.DoModal();前