日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

mfc让图片与按钮一起_MFC 基础知识:对话框背景添加图片和按钮Button添加图片...

發(fā)布時(shí)間:2024/9/19 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mfc让图片与按钮一起_MFC 基础知识:对话框背景添加图片和按钮Button添加图片... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

很長(zhǎng)時(shí)間沒(méi)有看MFC相關(guān)的知識(shí)了,我大概是在大二時(shí)候?qū)W習(xí)的MFC相關(guān)知識(shí)及圖像處理,現(xiàn)在由于要幫個(gè)朋友完成個(gè)基于C++的程序,所以又回顧了下相關(guān)知識(shí)。的確,任

// TODO: 在此添加額外的初始化代碼

//初始化窗口 設(shè)置窗口為500*500大小

MoveWindow(0,0,500,500);

/*******************************************************************************/

/* (重點(diǎn)知識(shí):實(shí)現(xiàn)按鈕位置設(shè)置)

*/

/* 1.使用Ctrl+Shift+X打開(kāi)類資源導(dǎo)向 增加開(kāi)始\結(jié)束按鈕的成員變量 Button型 */

/* 2.使用函數(shù)SetWindowPos()設(shè)置兩個(gè)按鈕的位置

*/

/*******************************************************************************/

/*******************************************************************************/

/* SetWindowPos()函數(shù)

*/

/*參數(shù):const CWnd* pWndInsertAfter,int x,int y,int cx,int cy,UINT nFlags */

/*

hwnd是窗口的句柄,x、y、cx、cy分別是窗口的x和y坐標(biāo)、寬和高度

*/

/*

hWndInsertAfter用來(lái)指定窗口的Z位置,代表深度.這個(gè)參數(shù)接受5種值:

*/

/* HWND_BOTTOM、 HWND_NOTOPMOST、HWND_TOP、HWND_TOPMOST或者另一個(gè)窗口的句柄 */

/*

wFlags用來(lái)指定附加的選項(xiàng)

*/

/*******************************************************************************/

//窗口句柄設(shè)置為NULL SWP_SHOWWINDOW顯示窗口 SWP_NOSIZE保持當(dāng)前大小忽略cx\xy故設(shè)置為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);

//設(shè)置按鈕屬性 點(diǎn)擊按鈕背景圖片變換

m_buttonstart.LoadBitmaps(IDB_StartMovie1,IDB_StartMovie2);

m_buttonfix.LoadBitmaps(IDB_StartMovie1,IDB_StartMovie2);

m_buttonexit.LoadBitmaps(IDB_StartMovie1,IDB_StartMovie2);

return TRUE; // 除非將焦點(diǎn)設(shè)置到控件,否則返回 TRUE此時(shí)你運(yùn)行程序會(huì)出現(xiàn)如下錯(cuò)誤:Error class "CButton"沒(méi)有成員“LoadBitmaps”。函數(shù)LoadBitmaps()的功能是點(diǎn)擊按鈕實(shí)現(xiàn)兩張背景圖片的替換。

第五步需要在XXXDlg.h頭文件中把public成員變量CButton全部修改為CBitmapButton,如下圖為修改第一個(gè)變量所示:

// CRecoveryMovieDlg 對(duì)話框

class CRecoveryMovieDlg : public CDialogEx

{

// 構(gòu)造

public:

CRecoveryMovieDlg(CWnd* pParent = NULL);// 標(biāo)準(zhǔn)構(gòu)造函數(shù)

// 對(duì)話框數(shù)據(jù)

enum { IDD = IDD_RECOVERYMOVIE_DIALOG };

protected:

virtual void DoDataExchange(CDataExchange* pDX);// DDX/DDV 支持

// 實(shí)現(xiàn)

protected:

HICON m_hIcon;

// 生成的消息映射函數(shù)

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;

};第六步:此時(shí)雖然你能運(yùn)行程序,但是按鈕背景依然沒(méi)有,,因?yàn)槟氵€需要分別設(shè)置三個(gè)按鈕的屬性“Owner Draw”為T(mén)rue,它指定按鈕為所有者描述的按鈕。

運(yùn)行結(jié)果如下圖所示:

?

最后希望文章對(duì)大家有所幫助,如果文章中有不足之處或錯(cuò)誤的地方,還請(qǐng)海涵!個(gè)人推薦初學(xué)者尤其很多老師布置作業(yè)需要用MFC完成的可以學(xué)習(xí),沒(méi)有什么語(yǔ)言流行,它們都是貫通的,都需要一步一個(gè)腳印的去學(xué)習(xí)。

總結(jié)

以上是生活随笔為你收集整理的mfc让图片与按钮一起_MFC 基础知识:对话框背景添加图片和按钮Button添加图片...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。