mfc让图片与按钮一起_MFC 基础知识:对话框背景添加图片和按钮Button添加图片...
很長時間沒有看MFC相關的知識了,我大概是在大二時候學習的MFC相關知識及圖像處理,現在由于要幫個朋友完成個基于C++的程序,所以又回顧了下相關知識。的確,任
// 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故設置為0
m_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让图片与按钮一起_MFC 基础知识:对话框背景添加图片和按钮Button添加图片...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java语言中的数据类型_Java语言中
- 下一篇: mysql实验总结范文_数据库课程设计实