创建新视图的简单问题
本人初次接触VC++界面编程,有一问题困惑我近两天,没有找到
解决的办法,请赐教。
int CRepView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
GetParentFrame()->SetWindowText("mytest");
//创建按钮控件
dwStyle = WS_CHILD | WS_VISIBLE | WS_BORDER;
m_rect = CRect(CPoint(400,10),CSize(100,30));
m_button.Create("Test", dwStyle, m_rect, this, ID_MYBUTTON);
...
return 0;
}
//定义绘制消息处理函数
void CRepView::OnDraw(CDC* pDC)
{
// CDocument* pDoc = GetDocument();
// TODO: add draw code here
CRect rectClip;
pDC->GetClipBox(rectClip);
pDC->FillSolidRect(rectClip, RGB(192,192,192));
pDC->TextOut(12, 12, "请选择学校:");
CString unitinfo;
unitinfo = "学校: ";
unitinfo = unitinfo + m_strSchoolName;
pDC->TextOut(12,60,unitinfo);
}
为了测试,我定义了按钮单击消息处理函数:
void CRepView::ShowMessage(char *pSchoolName)
{
pSchoolName = "光明小学";
::MessageBox(NULL,pSchoolName,"请注意",MB_ICONWARNING|MB_OK|MB_TOPMOST);
return;
}
现在问题是,每次单击按钮后,产生“请注意”消息框,单击确定后,调用OnDraw(...)函数,
这样就使得整个窗口的都被pDC->FillSolidRect(rectClip, RGB(192,192,192))操作覆盖了,
请问如何使得不被覆盖,同时窗口背景色为RGB(192,192,192),且能够PDC->TextOut(12,60,unitinfo)
谢谢!