人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

いま、C++/CLIでダイアログに描画したいと考えています。
MFCの場合は、
ダイアログを生成したときにそれに対応するID(たとえばIDC_STATIC_GPとします)を割り当てれば

CDC *pDC = GetDlgItem(IDC_STATIC_GP)->GetDC();
GetDlgItem(IDC_STATIC_GP1)->GetClientRect(&rec);
m_MemDC1.CreateCompatibleDC(pDC);
m_Bitmap1.CreateCompatibleBitmap(pWinDC,rec.right,rec.bottom);
m_MemDC1.SelectObject(&m_Bitmap1);
m_MemDC1.PatBlt(0,0,rec.right,rec.bottom,WHITENESS);
m_yellow_Pen.CreatePen(PS_SOLID,1,RGB(230,245,0)); //黄色のペンを作成
ReleaseDC(pWinDC);
ReleaseDC(pDC);

として描画できますが、C++/CLIの場合はダイアログのIDを取得できません。

"C++/CLIでダイアログに描画する方法を教えてください。"

●質問者: central_dogma
●カテゴリ:コンピュータ インターネット
✍キーワード:C++/CLI mfc PDC REC RGB
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● mj99
●60ポイント

「ダイアログ」はどのように作ったものですか?

1.リソースビューから、リソースの追加でダイアログを作成した

->クラスの追加によってCDialogの派生クラスが作られる


2.プロジェクトに新規項目でWindowsフォームを追加してた

->System::Windows::Forms::Formの派生クラスが作られる


----

1の場合は、VC++でMFCを使う場合とまったく同じ書き方で出来るはずです。

ダイアログデザインで、スタティックコントロールのプロパティの「ID」を"IDC_STATIC_GP"に設定すれば、質問文にあるコードはそのまま動きます。


2の場合は、.NETのクラスを使うことになります。

例えば、Form_Loadのイベントに、下記コードを追加します。

(フォーム上に"pictureBox1"という名前のPictureBoxが配置してあるものとします)

 //PictureBoxと同じ大きさのImageオブジェクトを作成
 pictureBox1->Image = gcnew Bitmap(pictureBox1->Width, pictureBox1->Height);

 //ImageオブジェクトからGraphicsオブジェクトの作成
 Graphics^ g = Graphics::FromImage(pictureBox1->Image);

 //線の描画
 g->DrawLine(Pens::Red, 0, 0, 100, 100); 

http://imagingsolution.blog107.fc2.com/blog-category-7.html(一番最後のところ)

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ