MFC 基础知识:对话框背景添加图片和按钮Button添加图片

// TODO: 在此添加额外的初始化代码//初始化窗口 设置窗口为500*500大小MoveWindow(0,0,500,500);/*******************************************************************************//* (重点知识:实现按钮位置设置)*//* 1.使用Ctrl+Shift+X打开类资源导向 增加开始\结束按钮的成员变量 Button型 *//* 2.使用函数SetWindowPos()设置两个按钮的位置*//*******************************************************************************//*******************************************************************************//* SetWindowPos()函数*//*参数:const CWnd* pWndInsertAfter,int x,int y,int cx,int cy,UINT nFlags *//*hwnd是窗口的句柄,x、y、cx、cy分别是窗口的x和y坐标、宽和高度*//*hWndInsertAfter用来指定窗口的Z位置,代表深度.这个参数接受5种值:*//* HWND_BOTTOM、 HWND_NOTOPMOST、HWND_TOP、HWND_TOPMOST或者另一个窗口的句柄 *//*wFlags用来指定附加的选项*//*******************************************************************************///窗口句柄设置为NULL SWP_SHOWWINDOW显示窗口 SWP_NOSIZE保持当前大小忽略cx\xy故设置为0m_buttonstart.SetWindowPos(NULL,20,280,0,0,SWP_SHOWWINDOW|SWP_NOSIZE);m_buttonfix.SetWindowPos(NULL,20,325,0,0,SWP_SHOWWINDOW|SWP_NOSIZE); m_buttonexit.SetWindowPos(NULL,20,370,0,0,SWP_SHOWWINDOW|SWP_NOSIZE);//设置按钮属性 点击按钮背景图片变换m_buttonstart.LoadBitmaps(IDB_StartMovie1,IDB_StartMovie2);m_buttonfix.LoadBitmaps(IDB_StartMovie1,IDB_StartMovie2);m_buttonexit.LoadBitmaps(IDB_StartMovie1,IDB_StartMovie2);return TRUE; // 除非将焦点设置到控件,否则返回 TRUE 此时你运行程序会出现如下错误:Error class "CButton"没有成员“LoadBitmaps”。函数LoadBitmaps()的功能是点击按钮实现两张背景图片的替换。

第五步需要在XXXDlg.h头文件中把public成员变量CButton全部修改为CBitmapButton,如下图为修改第一个变量所示:

// CRecoveryMovieDlg 对话框class CRecoveryMovieDlg : public CDialogEx{// 构造public:CRecoveryMovieDlg(CWnd* pParent = NULL);// 标准构造函数// 对话框数据enum { IDD = IDD_RECOVERYMOVIE_DIALOG };protected:virtual void DoDataExchange(CDataExchange* pDX);// DDX/DDV 支持// 实现protected:HICON m_hIcon;// 生成的消息映射函数virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();DECLARE_MESSAGE_MAP()public:CBitmapButton m_buttonstart;CBitmapButton m_buttonfix;CBitmapButton m_buttonexit;}; 第六步:此时虽然你能运行程序,但是按钮背景依然没有,,因为你还需要分别设置三个按钮的属性“Owner Draw”为True,它指定按钮为所有者描述的按钮。 运行结果如下图所示:

最后希望文章对大家有所帮助,如果文章中有不足之处或错误的地方,还请海涵!个人推荐初学者尤其很多老师布置作业需要用MFC完成的可以学习,没有什么语言流行,它们都是贯通的,都需要一步一个脚印的去学习。

有时间,我们可以去爬山,

MFC 基础知识:对话框背景添加图片和按钮Button添加图片

相关文章:

你感兴趣的文章:

标签云: