RegisterClassEx

RegisterClassExは、ウィンドウクラスを登録するWindowsAPI・・・。

RegisterClassEx 関数

この関数で登録する構造体はWNDCLASSEXとなる・・・。
WNDCLASSとの違いは、構造体のサイズを指定するところと、大きなアイコンとは別に小さなアイコンを設定できるところぐらい・・・。

f:id:BG1:20160913060330p:plain

プロジェクトを作成したら、リソースを追加・・・。

f:id:BG1:20160913060357p:plain

Iconをインポート・・・。

f:id:BG1:20160913060508p:plain

予めプロジェクトファイルのところに置いておいたicon1.icoをインポート・・・。
(resource.hやRegisterClassEx.rcは手動で編集しない・・・。このあとアイコンが正しくロードされない場合があるので・・・。)

RegisterClassEx.cppでは、

WNDCLASSEX構造体wcexの初期化・・・。
cbSizeにsizeofで求めたWNDCLASSEX構造体のサイズを指定・・・。
大きいアイコンhIconは、IDI_ICON1(icon1.ico)を指定・・・。
小さいアイコンhIconSmは、既定のIDI_APPLICATION・・・。
RegisterClassExだからといって、CreateWindowExでなければならないわけではない・・・。
なのでCreateWindowでウィンドウ作成・・・。

f:id:BG1:20160913062406p:plain

タスクバーの大きいアイコンは独自アイコンなのに対し、タイトルバーの左の小さなアイコンはアプリケーション既定のものとなっている・・・。
こういう風に別々のアイコンをセットできる・・・。

Sample/winapi/RegisterClassEx/RegisterClassEx/src/RegisterClassEx at master · bg1bgst333/Sample · GitHub