欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

VC動態(tài)生成菜單項的實現(xiàn)方法

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊: 次

本例所述為使用VC編寫的一個可以動態(tài)生成菜單項的類文件,這里展示的是其核心代碼,代碼備有比較詳細的注釋,相對而言理解起來并不復(fù)雜。

主要功能代碼如下:

#include "stdafx.h"
#include "Test.h"
#include "TestDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

// 用于應(yīng)用程序“關(guān)于”菜單項的 CAboutDlg 對話框

class CAboutDlg : public CDialog
{
public:
 CAboutDlg();

// 對話框數(shù)據(jù)
 enum { IDD = IDD_ABOUTBOX };

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

// 實現(xiàn)
protected:
 DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
 CDialog::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()

// CTestDlg 對話框
CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/)
 : CDialog(CTestDlg::IDD, pParent)
{
 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CTestDlg::DoDataExchange(CDataExchange* pDX)
{
 CDialog::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
 ON_WM_SYSCOMMAND()
 ON_WM_PAINT()
 ON_WM_QUERYDRAGICON()
 //}}AFX_MSG_MAP
 ON_BN_CLICKED(IDC_BTNADDSYSTEMMENU, OnBnClickedBtnaddsystemmenu)
END_MESSAGE_MAP()

// CTestDlg 消息處理程序
BOOL CTestDlg::OnInitDialog()
{
 CDialog::OnInitDialog();

 // 將\“關(guān)于...\”菜單項添加到系統(tǒng)菜單中。

 // IDM_ABOUTBOX 必須在系統(tǒng)命令范圍內(nèi)。
 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
 ASSERT(IDM_ABOUTBOX < 0xF000);

 CMenu* pSysMenu = GetSystemMenu(FALSE);
 if (pSysMenu != NULL)
 {
 CString strAboutMenu;
 strAboutMenu.LoadString(IDS_ABOUTBOX);
 if (!strAboutMenu.IsEmpty())
 {
  pSysMenu->AppendMenu(MF_SEPARATOR);
  pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
 }
 }

 // 設(shè)置此對話框的圖標(biāo)。當(dāng)應(yīng)用程序主窗口不是對話框時,框架將自動
 // 執(zhí)行此操作
 SetIcon(m_hIcon, TRUE);  // 設(shè)置大圖標(biāo)
 SetIcon(m_hIcon, FALSE); // 設(shè)置小圖標(biāo)

 // TODO:在此添加額外的初始化代碼
 
 return TRUE; // 除非設(shè)置了控件的焦點,否則返回 TRUE
}

void CTestDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
 if(nID==ID_FILE_OPEN)
 {
 MessageBox("測試添加系統(tǒng)菜單功能","信息提示",MB_OK);
 }
 else if ((nID & 0xFFF0) == IDM_ABOUTBOX)
 {
 CAboutDlg dlgAbout;
 dlgAbout.DoModal();
 }
 else
 {
 CDialog::OnSysCommand(nID, lParam);
 }
}

// 如果向?qū)υ捒蛱砑幼钚』粹o,則需要下面的代碼
// 來繪制該圖標(biāo)。對于使用文檔/視圖模型的 MFC 應(yīng)用程序,
// 這將由框架自動完成。

void CTestDlg::OnPaint() 
{
 if (IsIconic())
 {
 CPaintDC dc(this); // 用于繪制的設(shè)備上下文

 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

 // 使圖標(biāo)在工作矩形中居中
 int cxIcon = GetSystemMetrics(SM_CXICON);
 int cyIcon = GetSystemMetrics(SM_CYICON);
 CRect rect;
 GetClientRect(&rect);
 int x = (rect.Width() - cxIcon + 1) / 2;
 int y = (rect.Height() - cyIcon + 1) / 2;

 // 繪制圖標(biāo)
 dc.DrawIcon(x, y, m_hIcon);
 }
 else
 {
 CDialog::OnPaint();
 }
}

//當(dāng)用戶拖動最小化窗口時系統(tǒng)調(diào)用此函數(shù)取得光標(biāo)顯示。
HCURSOR CTestDlg::OnQueryDragIcon()
{
 return static_cast<HCURSOR>(m_hIcon);
}

void CTestDlg::OnBnClickedBtnaddsystemmenu()
{
 CMenu *pMenu=GetSystemMenu(FALSE);
 pMenu->AppendMenu(0,ID_FILE_OPEN,"顯示提示信息");
 MessageBox("增加系統(tǒng)菜單操作成功!","信息提示",MB_OK);
}

上一篇:C++中可正確獲取UTF-8字符長度的函數(shù)分享

欄    目:C語言

下一篇:采用C++實現(xiàn)區(qū)間圖著色問題(貪心算法)實例詳解

本文標(biāo)題:VC動態(tài)生成菜單項的實現(xiàn)方法

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/3546.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有