zoukankan      html  css  js  c++  java
  • 【VC编程技巧】窗口☞3.4利用bitmap改变对话框的背景。

    效果图:

    代码:

    1.在对话框初始化函数OnInitDialog中载入bitmap,然后创建新的画刷。

    // CBitmapDemoDlg メッセージ ハンドラー
    
    BOOL CBitmapDemoDlg::OnInitDialog()
    {
    	CDialogEx::OnInitDialog();
    
    	// "バージョン情報..." メニューをシステム メニューに追加します。
    
    	// IDM_ABOUTBOX は、システム コマンドの範囲内になければなりません。
    	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
    	ASSERT(IDM_ABOUTBOX < 0xF000);
    
    	CMenu* pSysMenu = GetSystemMenu(FALSE);
    	if (pSysMenu != NULL)
    	{
    		BOOL bNameValid;
    		CString strAboutMenu;
    		bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
    		ASSERT(bNameValid);
    		if (!strAboutMenu.IsEmpty())
    		{
    			pSysMenu->AppendMenu(MF_SEPARATOR);
    			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
    		}
    	}
    
    	// このダイアログのアイコンを設定します。アプリケーションのメイン ウィンドウがダイアログでない場合、
    	//  Framework は、この設定を自動的に行います。

    SetIcon(m_hIcon, TRUE); // 大きいアイコンの設定 SetIcon(m_hIcon, FALSE); // 小さいアイコンの設定 // TODO: 初期化をここに追加します。 CBitmap* pBitmap = new CBitmap; ASSERT(pBitmap); pBitmap->LoadBitmap(IDB_BKGROUND); //载入bitmap m_BKBrush.CreatePatternBrush(pBitmap); //创建画刷 delete pBitmap; return TRUE; // フォーカスをコントロールに設定した場合を除き、TRUE を返します。 }



    2.加入windows消息WM_CTLCOLOR的响应函数。

    HBRUSH CBitmapDemoDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    {
    	HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
    
    	// TODO:  ここで DC の属性を変更してください。

    // TODO: 既定値を使用したくない場合は別のブラシを返します。

    if (nCtlColor == CTLCOLOR_DLG ) //当前控件是对话框时,改变画刷 return (HBRUSH)m_BKBrush.GetSafeHandle(); return hbr; }




  • 相关阅读:
    四则运算(Android)版
    返回二维数组最大联通子数组的和
    第二阶段每日总结08
    第二阶段每日总结07
    第十三周进度条
    第二阶段每日总结06
    第二阶段每日总结05
    找水王02
    第二阶段每日总结04
    浪潮之巅阅读笔记01
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/6961150.html
Copyright © 2011-2022 走看看