【VC编程技巧】窗体?3.4利用bitmap改变对话框的背景。

2020-12-13 04:02

阅读:406

标签:vc   对话框   bitmap   

效果图:soscw.com,搜素材

代码:

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

// CBitmapDemoDlg メッセージ ハンドラー

BOOL CBitmapDemoDlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();

	// "バージョン情報..." メニューをシステム メニューに追加します。

	// IDM_ABOUTBOX は、システム コマンドの範囲内になければなりません。
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX 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;
}


【VC编程技巧】窗体?3.4利用bitmap改变对话框的背景。,搜素材,soscw.com

【VC编程技巧】窗体?3.4利用bitmap改变对话框的背景。

标签:vc   对话框   bitmap   

原文地址:http://blog.csdn.net/chen_jint/article/details/37507105


评论


亲,登录后才可以留言!