アイコンの表示について – プログラミング – Home

アイコンの表示について
 
通知
すべてクリア

[解決済] アイコンの表示について


テン
 テン
(@テン)
ゲスト
結合: 23年前
投稿: 35
Topic starter  

テンです。
質門内容というのは アイコンの表示についてです。

リソースエディタでアイコンを作りました。
下記のソースのようにOnDrawの中で表示しています。
マップモードをMM_TEXT から MM_LOENGLISH に変更すると
pDC->SetMapMode(MM_LOENGLISH);
上下逆[対称]になりました。
マップモードが MM_LOENGLISH のときも正常に表示できるでしょうか?

初心者ですが、よろしくお願いします。

環境
VC6.0 SP5 MFC SDI CView
OS WIN XP

void CMyView::OnDraw(CDC* pDC)
{
CMyDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: この場所にネイティブ データ用の描画コードを追加します。
DC->SetMapMode(MM_LOENGLISH);
HICON ICo8 = AfxGetApp()->LoadIcon(IDI_ICON_O8);
CPoint p;
p.x = 50;
p.y = 50;
pDC->DPtoLP(&p);
pDC->DrawIcon(x, y, ICo8);
}


引用未解決
トピックタグ
テン
 テン
(@テン)
ゲスト
結合: 23年前
投稿: 35
Topic starter  

すみません。コードにミスがありました。
最後の行
pDC->DrawIcon(x, y, ICo8);が
pDC->DrawIcon(p, ICo8);でした。m(__)m


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

DrawIconのヘルプには、
「この関数を使う前に必ず MM_TEXT マッピングモードを選択しておきます。」
と書いてありますので、
アイコン描画の時だけ一旦MM_TEXTにすればよいと思いますけど。

または、DrawIconExで、
DrawIconEx(pDC->m_hDC, p.x, p.y+32, ICo8, 32, -32, 0, NULL, DI_NORMAL);
のようにy座標の指定を逆にすることもできます。


返信引用
テン
 テン
(@テン)
ゲスト
結合: 23年前
投稿: 35
Topic starter  

できました。(^_^)/
dairygoods 様 ありがとうございました。


返信引用
テン
 テン
(@テン)
ゲスト
結合: 23年前
投稿: 35
Topic starter  

チェックわすれました。
テン@あわてもの です。m(..)m


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました