• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:コマンドボタンの色を変える)

コマンドボタンの色を変える

このQ&Aのポイント
  • コマンドボタンの色を変える方法について詳しく解説します。
  • CButtonクラスの派生クラスを作成し、ボタンの描画色を変更する方法を紹介します。
  • Visual C++6.0 SP6およびWindows XP Proで、コマンドボタンの色を変える際に発生するエラーについての助言をお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • titokani
  • ベストアンサー率19% (341/1726)
回答No.3

この場合は、m_colBtnのインスタンスがすでに作成されているのに、 m_colBtn.AutoLoadを呼び出したからですね。 m_colBtnに対して、DDX_~とかを呼び出していたりしませんか?

taka077
質問者

お礼

出来ました!!ありがとうございます。 DDX_~で呼び出していました。 参考にしたサイトへ辿り着くまでに、色々と試してる際、コントロールメンバ変数を設定していました。 フォントサイズも変えたいので、GetDlgItem()を使ってフォントサイズを変更する事が出来ました。 ちょっとボタンの装飾はあきらめようかとも思ってましたので、助かりました。 ありがとうございます。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • titokani
  • ベストアンサー率19% (341/1726)
回答No.2

>ASSERT(FromHandlePermanent(hWndNew) == NULL); その次の行に、 // must not already be in permanent map って書いてないですか?書いてあるとおりです。 CWnd::Attachを直接呼び出していないなら、「コールスタック」を見て、 自分が作ったコードに達するまでさかのぼってみましょう。

taka077
質問者

お礼

回答、ありがとうございます。 _/_/_/ モーダレスダイアログのOnInitDialog() _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ m_colBtn.AutoLoad(IDC_BTN_TAKEOUT, this); _/_/_/ CButtonクラスの派生クラスを作り,動的サブクラス化している所 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ // ボタンをCColorButtonアタッチにする BOOL CColorButton::AutoLoad(const UINT nID, CWnd* pParent) { // ダイナミックサブクラス化 if (!SubclassDlgItem(nID, pParent)) return false; return true; } SubclassDlgItem()の中でSubclassWindow()を経由してAttach()を呼んでいるところまでは追っかけましたが、 直訳「永久の地図ですでにあってはいけません」の意味がよく分かりません。 分からないなりにAttach()までのソースを見ますが、やはりおかしい所が分かりません。 再度、助言をお願いします。

すると、全ての回答が全文表示されます。
  • titokani
  • ベストアンサー率19% (341/1726)
回答No.1

せっかくアサーションが出ているのですから、wincore.cppの321行目を見てみてはいかがでしょうか?

taka077
質問者

お礼

回答、ありがとうございます。 「wincore.cpp」の321行目は以下のように記述されていましたが、勉強不足の為、よく分かりません。申し訳ありませんが、さらなる助言をお願いします。 ASSERT(FromHandlePermanent(hWndNew) == NULL);

すると、全ての回答が全文表示されます。

関連するQ&A