ダイアログの小さいアイコンの修正方法。
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; // 修正 } |
[ 戻る ]