プロパティ シートを作成する方法
このセクションの例では、2 ページを含むプロパティ シートを作成します。1 つはスプレッドシート内のセルのフォント プロパティを設定するためのもので、もう 1 つはセルの罫線プロパティを設定するためのものです。
この例では、PROPSHEETPAGE 構造体のペアに入力することでページを定義し、PropertySheet 関数に渡される PROPSHEETHEADER 構造体でアドレスを指定します。
知っておくべきこと
テクノロジ
前提条件
- C/C++
- Windows ユーザー インターフェイス プログラミング
手順
プロパティ シートを作成する
次のコード例は、2 ページのプロパティ シートを作成する方法を示しています。
// DoPropertySheet - creates a property sheet that contains two pages.
//
// hwndOwner - handle to the owner window of the property sheet.
//
// Global variables
// g_hinst - instance handle
extern HINSTANCE g_hinst;
VOID DoPropertySheet(HWND hwndOwner)
{
PROPSHEETPAGE psp[2];
PROPSHEETHEADER psh;
psp[0].dwSize = sizeof(PROPSHEETPAGE);
psp[0].dwFlags = PSP_USEICONID | PSP_USETITLE;
psp[0].hInstance = g_hinst;
psp[0].pszTemplate = MAKEINTRESOURCE(DLG_FONT);
psp[0].pszIcon = MAKEINTRESOURCE(IDI_FONT);
psp[0].pfnDlgProc = FontDialogProc;
psp[0].pszTitle = MAKEINTRESOURCE(IDS_FONT)
psp[0].lParam = 0;
psp[0].pfnCallback = NULL;
psp[1].dwSize = sizeof(PROPSHEETPAGE);
psp[1].dwFlags = PSP_USEICONID | PSP_USETITLE;
psp[1].hInstance = g_hinst;
psp[1].pszTemplate = MAKEINTRESOURCE(DLG_BORDER);
psp[1].pszIcon = MAKEINTRESOURCE(IDI_BORDER);
psp[1].pfnDlgProc = BorderDialogProc;
psp[1].pszTitle = MAKEINTRESOURCE(IDS_BORDER);
psp[1].lParam = 0;
psp[1].pfnCallback = NULL;
psh.dwSize = sizeof(PROPSHEETHEADER);
psh.dwFlags = PSH_USEICONID | PSH_PROPSHEETPAGE;
psh.hwndParent = hwndOwner;
psh.hInstance = g_hinst;
psh.pszIcon = MAKEINTRESOURCE(IDI_CELL_PROPERTIES);
psh.pszCaption = (LPSTR) "Cell Properties";
psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE);
psh.nStartPage = 0;
psh.ppsp = (LPCPROPSHEETPAGE) &psp;
psh.pfnCallback = NULL;
PropertySheet(&psh);
return;
}
解説
ページのダイアログ ボックス テンプレート、アイコン、ラベルは、アプリケーションの実行可能ファイルに含まれるリソースから読み込まれます。 プロパティ シートのアイコンも、アプリケーションのリソースから読み込まれます。
関連トピック