我采用如下代码:
void CMFCDlg::OnButton1()
{
CPaintDC dc(this);
CBrush brush;
brush.CreateSolidBrush(RGB(0, 0, 255));
dc.SelectObject(brush);
dc.Ellipse( 250, 250, 300, 300);
CDialog::OnPaint();
this->SetWindowText("N+1");
}
此代码仅能实现给窗体改名的功能,不能在窗体中画下图形。把斜体部分放入
void CMFCDlg::OnPaint()
{
else{
斜体代码;
}
}下能够实现画图,请高手指点下。
void CMFCDlg::OnButton1()
{
CPaintDC dc(this);
CBrush brush;
brush.CreateSolidBrush(RGB(0, 0, 255));
dc.SelectObject(brush);
dc.Ellipse( 250, 250, 300, 300);
CDialog::OnPaint();
this->SetWindowText("N+1");
}
此代码仅能实现给窗体改名的功能,不能在窗体中画下图形。把斜体部分放入
void CMFCDlg::OnPaint()
{
else{
斜体代码;
}
}下能够实现画图,请高手指点下。
解决方案 »
- 将窗口移动到前端,请问使用下面三个哪个更合适?谢谢!
- 关于WSAAsyncSelect模型去ip地址的问题~
- 两个类的头文件相互包含怎么解决呢?
- 求助:用MFC自动化操作Excel,有没有简单的方法向表里追加数据?
- 关于文字编辑控件的问题
- First-chance exception in gobang.exe (COMCTL32.DLL): 0xC0000005: Access Violation.
- 如何得到ctreeCtrl复选框选中的消息?
- NetUserAdd如何调用?有源码最好!
- vb--ado数据库怎样把查询到的数据项显示出来?
- 第一次亲密接触VXD--气得吐血了!!!!VToolSD+VC6.0!!
- vc6.0——CreateDispatch("Word.Application")出错
- 用vc驱动usb摄像头时报错的问题
会刷新界面,刚刚绘制过的被清除了。你可以先试试去掉这一句会不会有显示。想实现绘图就在OnPaint()里面绘制,界面刷新了也可以显示。
设置一个全局BOOL类型变量:boolTemp
void CMFCDlg::OnButton1()
{
boolTemp = TRUE;
Invalidate(TRUE);
}
在OnPaint函数中的else代码块中这样写:
if(boolTemp)
{
CPaintDC dc(this);
CBrush brush;
brush.CreateSolidBrush(RGB(0, 0, 255));
dc.SelectObject(brush);
dc.Ellipse( 250, 250, 300, 300);
boolTemp = FALSE;
}
{
//CPaintDC dc(this);
CDC *pDC = GetDC();
//CBrush brush;
//brush.CreateSolidBrush(RGB(0, 0, 255));
CBrush br(RGB(0, 0, 255));
//dc.SelectObject(brush);
//dc.Ellipse( 250, 250, 300, 300);
//CDialog::OnPaint();
CBrush *pOldBr = pDC->SelectObject(&br);
pDC->Ellipse(255, 255, 300, 300);
pDC->SelectObject(pOldBr);
ReleaseDC(pDC);
this->SetWindowText("N+1");
}
{
//CPaintDC dc(this);
CDC *pDC = GetDC();
//CBrush brush;
//brush.CreateSolidBrush(RGB(0, 0, 255));
CBrush br(RGB(0, 0, 255));
//dc.SelectObject(brush);
//dc.Ellipse( 250, 250, 300, 300);
//CDialog::OnPaint();
CBrush *pOldBr = pDC->SelectObject(&br);
pDC->Ellipse(255, 255, 300, 300);
pDC->SelectObject(pOldBr);
ReleaseDC(pDC);
this->SetWindowText("N+1");
}