首先是GUI部分的制作
考虑采用画图板制作出背景图片,通过在WM_ERASEBKGND消息响应中重画来完成GUI的加载
网上提供的材料
1.没找到WM_ERASEBKGND消息:classinfo->Message filter中下拉选中windows 返回message maps即可看到
2. 如何加载:
首先要提前添加resourse 命名为IDB_BKG 定义全局变量CBitmap bkgbitmap并初始化 bkgbitmap.LoadBitmap(IDB_BKG);
BOOL CNew3dDlg::OnEraseBkgnd(CDC* pDC)
{
BOOL value=CDialog::OnEraseBkgnd(pDC);
CRect rect;
GetClientRect(&rect);
BITMAP bitmap;
bkgbitmap.GetBitmap(&bitmap);
CDC dc;
dc.CreateCompatibleDC(pDC);
CBitmap *oldbitmap=dc.SelectObject(&bkgbitmap);
pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dc,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
dc.SelectObject(oldbitmap);
return value;
}
补充:如果是单一颜色的话可以这么写
BOOL CNew3dDlg::OnEraseBkgnd(CDC* pDC)
{
BOOL value=CDialog::OnEraseBkgnd(pDC);
CRect rect;
GetClientRect(&rect);
pDC->FillSolidRect(rect,RGB(0,0,0));
return value;
}
按照网上教程将背景设置好以后就是程序中按钮部分的实现。
程序不准备添加按钮控件,采用直接获取鼠标点击位置来模拟点击按钮
需要添加一个edit控件来获取输入的坐标序号
界面结果如下: