对话框中绘制指定颜色和位置的矩形 我看到文档中画矩形用SolidBrush制定颜色、用Rectangle函数绘图的方法。对话框中该怎么做呢?是不是应该添加Picture Control控件,具体该如何编码实现呢?最好能给个实例。没什么编程基础,希望能详细点儿。谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 将view 中的ondraw中的代码,改到 dialog中的onpaint中...... 文档View中绘制矩形:添加了WM_PAINT消息void CBrushRectView::OnPaint(){ CPaintDC dc(this); CBrush br,*pOldBrush; br.CreateSolidBrush(RGB(0,0,255)); pOldBrush=dc.SelectObject(&br); dc.Rectangle(10,10,160,110); dc.SelectObject(pOldBrush); br.DeleteObject();}在文档绘制了一个蓝色矩形,编译运行成功。建立了另一个基于CDialog的工程,在OnPaint中添加这段代码却没显示出来矩形:void CBrushRectDialogDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); // 使图标在工作矩形中居中 int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // 绘制图标 dc.DrawIcon(x, y, m_hIcon); } else { CDialog::OnPaint(); } CPaintDC dc(this); CBrush br,*pOldBrush; br.CreateSolidBrush(RGB(0,0,255)); pOldBrush=dc.SelectObject(&br); dc.Rectangle(10,10,160,110); dc.SelectObject(pOldBrush); br.DeleteObject();} CPaintDC dc(this);这句改正就好了,问题解决,谢谢fandh。 跪求一商品交易系统的数据库设计思路 一般怎么解决控件上中文显示乱码的问题 数据类型转换 TCHAR ,char,char*的区别? 帮忙找个经典的Visual C++视频教程 CRecordSet.Open的问题 如何使 ListCtrl 的 Item 随意拖动? CMarkupMSXML类查找FindChildElem FindElem 功能如何使用路径? WIN32API-串行通讯(有不懂,请指教) 图形化编程的原理是什么?调用模块函数还是多线程? Windows下如何改写目标进程的窗口函数来注入DLL 关于动态链接库的问题!
void CBrushRectView::OnPaint()
{
CPaintDC dc(this);
CBrush br,*pOldBrush;
br.CreateSolidBrush(RGB(0,0,255));
pOldBrush=dc.SelectObject(&br);
dc.Rectangle(10,10,160,110);
dc.SelectObject(pOldBrush);
br.DeleteObject();
}
在文档绘制了一个蓝色矩形,编译运行成功。建立了另一个基于CDialog的工程,在OnPaint中添加这段代码却没显示出来矩形:
void CBrushRectDialogDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); // 使图标在工作矩形中居中
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2; // 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
CPaintDC dc(this);
CBrush br,*pOldBrush;
br.CreateSolidBrush(RGB(0,0,255));
pOldBrush=dc.SelectObject(&br);
dc.Rectangle(10,10,160,110);
dc.SelectObject(pOldBrush);
br.DeleteObject();
}