Foundation > Microsoft Windows での Rogue Wave Views の使用 > Windows コードを Rogue Wave Views アプリケーションに組み込む
 
Windows コードを Rogue Wave Views アプリケーションに組み込む
Microsoft Windows がサポートする数々のインターフェース・ジェネレーターのいずれかで作成された Windows メニューやパネルを、独自の Rogue Wave® Views アプリケーションに簡単に組み込むことができます。 この例は、<ILVHOME>\samples の下にあるサブディレクトリー foundation\windows で参照できます。 オンライン・マニュアルの『Views Foundation チュートリアル』も参照してください。
以下の例は、いずれかのインターフェース・ビルダーで作成されたパネルをリソース・コンパイラーでアプリケーションにリンクした例を示しています。
#define VIEW_ID 1010 // The ID of a sub-window in the panel
int PASCAL ILVEXPORTED
DialogProc(HWND dlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg) {
case WM_INITDIALOG:
// Create some Views object in the dialog.
InitRoguewaveViews((IlvDisplay*)lParam, GetDlgItem(dlg, VIEW_ID));
return 1;
case WM_COMMAND:
if (wParam == QUIT_ID) {
EndDialog(dlg, 1); // Close the dialog
ReleaseRoguewaveViews(); // Delete Views objects
PostQuitMessage(0); // Exit the event loop
return 1;
}
}
return 0;
}
 
 
int
main(int argc, char* argv[])
{
// Connect to the windowing system.
IlvDisplay* display = new IlvDisplay("RoguewaveViews", "", argc, argv);
if (display->isBad()) {
IlvFatalError("Couldnft connect to display system");
delete display;
return 1;
}
// Create the dialog box.
if (DialogBoxParam(display->getInstance(), "MY_PANEL", 0,
(FARPROC)DialogProc, (long)display) == -1)
IlvFatalError("Couldn?t create dialog");
delete display;
return 1;
}
 
void
InitRoguewaveViews(IlvDisplay* display, HWND wnd)
{
// For example: a container that uses the ?wnd? window.
container = new IlvContainer(display, wnd);
...
}void
ReleaseRoguewaveViews()
{
delete container;
}
InitRoguewaveViews メンバー関数では、既存の Windows パネル wnd を保持する新規の IlvContainer オブジェクトが作成されます。 ユーザー・インターフェース・ジェネレーターでは、そのウィンドウで使用する WindowsClass が RoguewaveViewsWndClass であることを指定する必要があります。
この例では、アプリケーションを開始するために Microsoft Windows が予期する WinMain エントリー・ポイントの代わりに main 関数が提供されるため、オブジェクト・ファイルを ILVMAIN.OBJ ファイルにリンクする必要があります。 このファイルは Rogue Wave Views に含まれており、必要なすべての初期化操作を行うデフォルトの WinMain 関数を定義し、main 関数を呼び出します。

Version 6.0
Copyright © 2015, Rogue Wave Software, Inc. All Rights Reserved.