ダイアログの小さいアイコンの修正方法。
AppWizardで作ったのダイアログベースのアプリは
デフォルトでは左上の(小さい)アイコンが崩れているので修正します。
まずはメンバ変数を追加する。 |
class CKamereonDlg : public CDialog
{
:
:
protected:
HICON m_hIcon;
HICON m_hSmallIcon; // 追加
:
:
};
|
コンストラクタで小さいアイコンのハンドルを取得。 |
CXXXDlg::CXXXDlg(CWnd* pParent /*=NULL*/)
: CDialog(CKamereonDlg::IDD, pParent)
{
:
:
// メモ: LoadIcon は Win32 の DestroyIcon のサブシーケンスを要求しません。
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
// LoadImageで小さいアイコンのハンドルを取得。
m_hSmallIcon = (HICON)::LoadImage(AfxGetInstanceHandle(), //
MAKEINTRESOURCE(IDR_MAINFRAME), //
IMAGE_ICON, // 追加
16, //
16, //
LR_DEFAULTCOLOR); //
}
|
|
|
BOOL CKamereonDlg::OnInitDialog()
{
:
:
// ウィンドウがダイアログでない時は自動的に設定しません。
SetIcon(m_hIcon, TRUE); // 大きいアイコンを設定
SetIcon(m_hSmallIcon, FALSE); // 小さいアイコンを設定 // 修正
:
:
} |
|
|
void CKamereonDlg::OnPaint()
{
:
:
// アイコンを描画します。
dc.DrawIcon(x, y, m_hSmallIcon); // 修正
:
:
}
|
|
|
HCURSOR CKamereonDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hSmallIcon; // 修正
}
|
[ 戻る ]