VC++2005でのリソースコンパイルエラーについて
よろしくお願いします。
猫でもわかる…… を参考にしながら、C言語でスクリーンセイバーを作成しています。
BCCForm and Skelton で作成したリソースをVC++2005で利用してます。
『設定のためのダイアログボックスを表示しないスクリーンセイバー』 はうまく行ったのですが、
『設定用ダイアログボックスを表示させるプログラム』 ではエラーが出てしまいます。
WS_EX_DLGMODALFRAME この部分が良くないらしいのですが、コメントアウトしてみたり、
削除してみたり、記述を変えたりしたのですが、うまくコンパイルしてくれません。
詳しい方、アドバイスをお願いします。
//-----------------------------------------
// BCCForm Ver 2.41
// An Easy Resource Editor for BCC
// Copyright (c) February 2002 by ysama
//-----------------------------------------
#include "Resscreensav.h"
//----------------------------------
// ダイアログ (DLG_SCRNSAVECONFIGURE)
//----------------------------------
DLG_SCRNSAVECONFIGURE DIALOG DISCARDABLE 0, 0, 270, 180
EXSTYLE WS_EX_DLGMODALFRAME | WS_EX_APPWINDOW
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX
CAPTION "設定"
FONT 8, "MS 明朝"
{
CONTROL "表示間隔", IDC_STATIC, "STATIC", WS_CHILD | WS_VISIBLE | SS_NOTIFY, 24, 18, 63, 15
CONTROL "表示文字列", IDC_STATIC, "STATIC", WS_CHILD | WS_VISIBLE | SS_NOTIFY, 24, 54, 63, 15
CONTROL "表示回数", IDC_STATIC, "STATIC", WS_CHILD | WS_VISIBLE | SS_NOTIFY, 27, 93, 63, 15
CONTROL "", IDC_EDIT1, "EDIT", WS_CHILD | WS_DLGFRAME | WS_VISIBLE | ES_AUTOHSCROLL, 102, 18, 102, 15
CONTROL "", IDC_EDIT2, "EDIT", WS_CHILD | WS_DLGFRAME | WS_VISIBLE | ES_AUTOHSCROLL, 102, 51, 102, 15
CONTROL "", IDC_EDIT3, "EDIT", WS_CHILD | WS_DLGFRAME | WS_VISIBLE | ES_AUTOHSCROLL | ES_LEFT, 105, 90, 102, 15
CONTROL "OK", IDOK, "BUTTON", WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON, 18, 144, 69, 15
CONTROL "キャンセル", IDCANCEL, "BUTTON", WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON, 165, 144, 69, 15
}
//--------------------------
// イメージ(MYBMP)
//--------------------------
MYBMP BITMAP DISCARDABLE "C:\My Pictures\scan1\scan5.bmp"
//--------------------------
// イメージ(ID_APP)
//--------------------------
ID_APP DISCARDABLE "icon1.ico"
//-----------------------------------------
// BCCForm Ver 2.41
// Header File for Resource Script File
// Copyright (c) February 2002 by ysama
//-----------------------------------------
//---------------------
// ダイアログリソース
//---------------------
// ダイアログ DLG_SCRNSAVECONFIGURE
#define IDC_STATIC 100
#define IDC_EDIT1 103
#define IDC_EDIT2 104
#define IDC_EDIT3 105
#define DLG_SCRNSAVECONFIGURE 2003
//---------------------
// メニューリソース
//---------------------
//---------------------
// イメージリソース
//---------------------
//#define MYBMP 200
//#define ID_APP 100
//---------------------
// ストリングテーブル
//---------------------
//--------------------
// アクセラレーター
//--------------------
//------------------
// ヴァージョン情報
//------------------
------ ビルド開始: プロジェクト: screensav, 構成: Release Win32 ------
リソースをコンパイルしています...
..\..\..\..\Bitmap\screensav\screensav.rc(12) : error RC2104 : undefined keyword or key name: WS_EX_DLGMODALFRAME
ビルドログは "file://c:\Visual Studio 2005\Projects\screensav\screensav\Release\BuildLog.htm" に保存されました。
screensav - エラー 1、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========
お礼
回答ありがとうございます。 >newで作成したインスタンスのdeleteが行われていません。 質問後に気がついてdeleteしてみましたが、現象は改善されませんでした。 >理由は、リージョンの作成も、ビットマップのロードも時 >間がかかるからです。 初めてのことでよく分からなかったので、 1.初めに作成すると画像データが多い場合はメモリを消費するんじゃないかと思いました。 2.後で作成すると処理時間がかかり動作が遅くなるのではと思いました。 それで今回はパターン2でやってみました。 >このサンプルがOnInitDialogですべての処理を行ってい >る理由を考えてくださいね。 >ウィンドウの形状がOnInitDialog以降変化しないからこ >れでもかまわないんです。 起動後にウィンドウの形を変える場合も想定して、何とか今回の場合の不具合を直したいと思いました。 #実はいろいろいじっていたら、リソース減少は直ってしまいました。 前のコードと比較して何が功を奏したのか調べてみます。
補足
CDC *pDC, tempDC9;と宣言していたのを以下のように分けたら直ってしまいました。理由はわかりません。 ************************* //CDC *pDC, tempDC9; //■コメントアウト CDC *pDC; //■変更 CBitmap m_p9[2]; pDC = GetDC(); CDC tempDC9; //■変更 tempDC9.CreateCompatibleDC(NULL); m_p9[0].LoadBitmap(IDB_BITMAP1); m_p9[1].LoadBitmap(IDB_BITMAP2);