请教MFC对话框怎么重绘
请问MFC对话框如何重绘?
例如

我想用MFC写有一个能够完成上述构想的程序。现在主要是界面问题不知道怎么解决。
请问各位大神,我有几个问题:
1.我想隐藏程序边框,请问该怎么实现?(假设是MFC对话框类)
2.我想在程序顶部显示一个梯形的图片,图片上有按钮和文本。比如:

我知道不可能实现的那么细致,只是想描述一下我的构想。意思就是一张图片上有按钮和文本两个控件。
3.我想自定义按钮形状,并且在其上绘制图形(或贴图),请问该如何实现按钮重绘?
------解决思路----------------------
难度很大,敢觉你要想实现,控件什么的都要自己从底层重载起来。从CObject上直接重载。没法继承CButton。消息响应什么的你都要自己处理
------解决思路----------------------
将你的若干个奇形怪状的按钮的边缘对应的多边形保存在一个Region数组中,然后使用API PtInRegion判断鼠标指针是否落在这些Region中的某一个中。
------解决思路----------------------
搜“非矩形按钮”
------解决思路----------------------
取消对话框的标题栏,在OnPaint里自己绘图就可以完成你的想法
你的界面可以这样描述,有N个区域,每个区域有各自的文本或者图片,有各自的坐标和包络矩形,每个区域都可以响应鼠标时间
于是
class CMyObj
{
public:
CMyObj();
~ CMyObj();
public:
void Create(int x,int y, DWORD ID,CWnd *Parent,CString fname,CString text);
CRgn *RgnFromPictrue(CString imgfile);
void Show(CDC *pDC);
private:
CRgn *xRgn; //指向区域
long sx; //坐标
long sy; //坐标
CString xText; //文本
CString xImage //图片文件名
HWND xParent;//父窗口句柄
DWORD xID; //本身分配ID
};
你网上搜索怎么样从图片建立区域完成RgnFromPictrue(CString imgfile);
基本就没啥难度了
在对话框.H建立你的对象
CMyObj xHelp;
在InitDialog里创建
xHelp.Create(300,100,12345,this,"c:\\a.jpg","");
在OnPaint里
xHelp.Show(&dc);
例如
我想用MFC写有一个能够完成上述构想的程序。现在主要是界面问题不知道怎么解决。
请问各位大神,我有几个问题:
1.我想隐藏程序边框,请问该怎么实现?(假设是MFC对话框类)
2.我想在程序顶部显示一个梯形的图片,图片上有按钮和文本。比如:
我知道不可能实现的那么细致,只是想描述一下我的构想。意思就是一张图片上有按钮和文本两个控件。
3.我想自定义按钮形状,并且在其上绘制图形(或贴图),请问该如何实现按钮重绘?
------解决思路----------------------
难度很大,敢觉你要想实现,控件什么的都要自己从底层重载起来。从CObject上直接重载。没法继承CButton。消息响应什么的你都要自己处理
------解决思路----------------------
将你的若干个奇形怪状的按钮的边缘对应的多边形保存在一个Region数组中,然后使用API PtInRegion判断鼠标指针是否落在这些Region中的某一个中。
------解决思路----------------------
搜“非矩形按钮”
------解决思路----------------------
取消对话框的标题栏,在OnPaint里自己绘图就可以完成你的想法
你的界面可以这样描述,有N个区域,每个区域有各自的文本或者图片,有各自的坐标和包络矩形,每个区域都可以响应鼠标时间
于是
class CMyObj
{
public:
CMyObj();
~ CMyObj();
public:
void Create(int x,int y, DWORD ID,CWnd *Parent,CString fname,CString text);
CRgn *RgnFromPictrue(CString imgfile);
void Show(CDC *pDC);
private:
CRgn *xRgn; //指向区域
long sx; //坐标
long sy; //坐标
CString xText; //文本
CString xImage //图片文件名
HWND xParent;//父窗口句柄
DWORD xID; //本身分配ID
};
你网上搜索怎么样从图片建立区域完成RgnFromPictrue(CString imgfile);
基本就没啥难度了
在对话框.H建立你的对象
CMyObj xHelp;
在InitDialog里创建
xHelp.Create(300,100,12345,this,"c:\\a.jpg","");
在OnPaint里
xHelp.Show(&dc);