OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

ShellAbout(hWnd,"","",LoadIcon(?));

  • 暇なときにでも
  • 質問No.216030
  • 閲覧数281
  • ありがとう数5
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 59% (194/328)

BCC32 で、

ShellAbout(hWnd,"","",LoadIcon(hInst, IDI_APPLICATION));
ShellAbout(hWnd,"","",LoadIcon(NULL, IDI_APPLICATION));

↑ならアイコンに関してどっちでもできるけど、リソースで
MYICONSM ICON DISCARDABLE "ico.ico"
として、

ShellAbout(hWnd,"","",LoadIcon(hInst, "MYICON");
ShellAbout(hWnd,"","",LoadIcon(NULL, "MYICON"));

↑はアイコンに関してどっちも無効で旗になります。
BCC32 で ShellAbout( ) で自作アイコンを表示するには
どうしたらいいんですか?


#include <windows.h>
#include <shellapi.h>

HINSTANCE hInst;
HICON hIcon;

LRESULT CALLBACK WndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam){

 switch (uMsg){
 case WM_LBUTTONDOWN:
  ShellAbout(hWnd,"","",?;
 break;
 case WM_DESTROY:
  PostQuitMessage(0);
 break;
 default:
  return DefWindowProc(hWnd,uMsg,wParam,lParam);
 }
 return 0;
}

int WINAPI WinMain(HINSTANCE hInst,HINSTANCE,LPSTR,int){
 HWND hWnd;
 WNDCLASSEX wc;
 MSG msg;
 wc.cbSize =略
 wc.style =
 wc.lpfnWndProc =
 wc.hInstance =
 wc.cbClsExtra =
 wc.cbWndExtra =
 wc.lpszMenuName =
 wc.lpszClassName =
 wc.hIcon =
 wc.hCursor =
 wc.hbrBackground =
 RegisterClassEx(&wc);

 hWnd = CreateWindow(wc.lpszClassName,"TEST",WS_OVERLAPPEDWINDOW,
     0,0,640,480,NULL,NULL,hInst,NULL);

 ShowWindow(hWnd,SW_SHOWNORMAL);
 UpdateWindow(hWnd);

 while(GetMessage( &msg, NULL, 0, 0)){
  TranslateMessage( &msg );
  DispatchMessage( &msg );
 }
 return 0;
}
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全1件)

  • 回答No.1
レベル7

ベストアンサー率 90% (10/11)

確認ですが、LoadIconの戻り値がNULLでないことは 確認されてますよね? LoadIcon(hInst, "MYICON"); とか LoadIcon(NULL, "MYICON"); の戻り値です。 アイコンの作成の仕方に間違えはないんですよね? LoadIconのヘルプを見ると、 「アイコンリソースは、カラービットマップまたは ...続きを読む
確認ですが、LoadIconの戻り値がNULLでないことは
確認されてますよね?

LoadIcon(hInst, "MYICON"); とか
LoadIcon(NULL, "MYICON");
の戻り値です。

アイコンの作成の仕方に間違えはないんですよね?
LoadIconのヘルプを見ると、
「アイコンリソースは、カラービットマップまたは
 モノクロビットマップにすることができます。アイコ
 ンのサイズは、GetSystemMetrics 関数で引数として
 SM_CXCURSOR や SM_CYCURSOR を渡したときに得られ
 る値でなければなりません。それ以外のサイズのアイ
 コンをロードするには、LoadImage 関数を使用しま
 す。」
とありますが、それは、読まれていますね?
補足コメント
A__

お礼率 59% (194/328)

質問ソースに間違いがあったから下に全部書き直します。

BCC32 で、

ShellAbout(hWnd,"","",LoadIcon(hInst, IDI_APPLICATION));
ShellAbout(hWnd,"","",LoadIcon(NULL, IDI_APPLICATION));

↑ならアイコンに関してどっちでもできるけど、リソースで
MYICON ICON DISCARDABLE "ico.ico"
MYICONSM ICON DISCARDABLE "icosm.ico"
として、

ShellAbout(hWnd,"","",LoadIcon(hInst, "MYICON");
ShellAbout(hWnd,"","",LoadIcon(NULL, "MYICON"));

↑はアイコンに関してどっちも無効で旗になります。
BCC32 で ShellAbout( ) で自作アイコンを表示するには
どうしたらいいんですか?
BCC32 で実際にアイコン表示できる方だけに教えてほしいです。


#include <windows.h>
#include <shellapi.h>

HINSTANCE hInst;
HICON hIcon;

LRESULT CALLBACK WndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam){

 switch (uMsg){
 case WM_LBUTTONDOWN:
  ShellAbout(hWnd,"","",?;
 break;
 case WM_DESTROY:
  PostQuitMessage(0);
 break;
 default:
  return DefWindowProc(hWnd,uMsg,wParam,lParam);
 }
 return 0;
}

int WINAPI WinMain(HINSTANCE hInst,HINSTANCE,LPSTR,int){
 HWND hWnd;
 WNDCLASSEX wc;
 MSG msg;
 wc.cbSize =略
 wc.style =
 wc.lpfnWndProc =
 wc.hInstance =
 wc.cbClsExtra =
 wc.cbWndExtra =
 wc.lpszMenuName =
 wc.lpszClassName =
 wc.hIcon =
 wc.hIconSm = LoadIcon(hInst, "MYICONSM");// これは成功。
 wc.hCursor =
 wc.hbrBackground =
 RegisterClassEx(&wc);

 hWnd = CreateWindow(wc.lpszClassName,"TEST",WS_OVERLAPPEDWINDOW,
     0,0,640,480,NULL,NULL,hInst,NULL);

 ShowWindow(hWnd,SW_SHOWNORMAL);
 UpdateWindow(hWnd);

 while(GetMessage( &msg, NULL, 0, 0)){
  TranslateMessage( &msg );
  DispatchMessage( &msg );
 }
 return 0;
}
投稿日時 - 2002-02-12 02:13:20


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ