メルマガ:■CからウィンドウズDIRECTXプログラミング
タイトル:■CからはじめるWindowsDirectXへの道 Vol35■  2000/08/10


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
○広告

  TVコマーシャルでおなじみの『ネットプライスモール』
                に   
       あなたのお店を出店しませんか?
               
http://www.sls.usen.ne.jp/kns-project/netpricemall2.html
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    茨城県の片田舎、竜ヶ崎にこんな店があったなんて!
    そう。そこがPix CAFE。
    パスタが美味い!ピッツァが美味い!ついで、店長ウクレレ上手い!
    みんなでガヤガヤ、二人でしっとり、一人のさびしい人は責任を
    持っておなぐさめ致します。
    まあ、とりあえずいらっしゃいよ!
   
    Pix CAFE
        住所:茨城県竜ヶ崎市中根台2−2−4
        TEL:0279−65−4440
          URL< http://www.geocities.co.jp/Foodpia/8873/>

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 発行者もおすすめ、無償での掲載
 6号線をすこ〜〜〜〜し曲がった場所にあります.
 (めるまがを見てきたといっても、何もありません.(笑))
 
発行部数:MagMag 2313  Pubzine 312  カプライト209
     Melten 31  E-Magazine 54  ここでメール 146
     Macky 153 Melma 224  

 総発行部数:3446

▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼
------------------------------------------------------------
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓

■CからはじめるWindowsDirectXへの道 Vol33■          

┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

┌─────────────────────────────┐


■第2章 Windows(リソースファイル( RC )編)   


└─────────────────────────────┘
     
───────────────────────────────
 さて、今回は,リソースファイルをテキストファイルから作成して
 みます。また、そのリソースファイルをつかい、簡単な
 表示を表示を行います.

 追加:ダウンロードをHTML−HELPを使用したものに変更しました.
    以前の形より見やすくまた、使いやすくなりました.
   
┌─────────────────────────────┐
 電話加入権激安!ISDNライトなら9800円で電話が引ける!?(株)コムズ
 ↓詳しくはここをクリック!
 <http://www.comzz.co.jp/cgi-bin/cookie/set.cgi?t=top&id=2543>
└─────────────────────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                ●   リソースファイル  ●
    
  今回は、リソースファイル について触れていきます.
  関数などの説明は、サンプルのあとに乗せていきます。
 
┌─────────────────────────────┐
  今回はまず説明の前に、どのようなものか?を試してもらい
 ためと思います.

 では、ためしに今まで作ったリソースファイルをテキストエディタ
 で開いてみてください.
 そして,そのファイル内の数値などを見てみてください.
 以下のような形で出力されると思います.
  前回のコンボボックスを試す編のリソースファイルです.

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
     //Microsoft Developer Studio generated resource script.
     //
     #include "resource.h"

     // Generated Help ID header file
     #define APSTUDIO_HIDDEN_SYMBOLS
     #include "resource.hm"
     #undef APSTUDIO_HIDDEN_SYMBOLS

     #define APSTUDIO_READONLY_SYMBOLS
     /////////////////////////////////////////////////////////////////////////////
     //
     // Generated from the TEXTINCLUDE 2 resource.
     //
     #include "afxres.h"

     /////////////////////////////////////////////////////////////////////////////
     #undef APSTUDIO_READONLY_SYMBOLS

     /////////////////////////////////////////////////////////////////////////////
     // 日本語 resources

     #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)
     #ifdef _WIN32
     LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
     #pragma code_page(932)
     #endif //_WIN32

     /////////////////////////////////////////////////////////////////////////////
     //
     // Dialog
     //

     MAIN DIALOGEX 0, 0, 187, 133
     STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
     EXSTYLE WS_EX_ACCEPTFILES
     CAPTION "ダイアログ"
     MENU IDR_MENU1
     FONT 9, "MS Pゴシック"
     BEGIN
         DEFPUSHBUTTON   "OK",IDOK,130,7,50,14
         PUSHBUTTON      "キャンセル",IDCANCEL,130,24,50,14
         COMBOBOX        IDC_COMBO1,14,7,88,17,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | 
                         CBS_NOINTEGRALHEIGHT | CBS_DISABLENOSCROLL | 
                         CBS_UPPERCASE | WS_VSCROLL,0,HIDC_COMBO1
         PUSHBUTTON      "追加",IDC_BUTTON1,14,83,32,19
         PUSHBUTTON      "削除",IDC_BUTTON2,54,83,32,20
         PUSHBUTTON      "Dir",IDC_BUTTON3,93,86,34,18
         PUSHBUTTON      "検索",IDC_BUTTON4,14,106,29,20
         PUSHBUTTON      "ドロップダウン",IDC_BUTTON5,53,107,42,19
         PUSHBUTTON      "カウント",IDC_BUTTON6,98,108,32,18
         EDITTEXT        IDC_EDIT1,130,80,50,12,ES_AUTOHSCROLL
     END


     /////////////////////////////////////////////////////////////////////////////
     //
     // DESIGNINFO
     //

     #ifdef APSTUDIO_INVOKED
     GUIDELINES DESIGNINFO DISCARDABLE 
     BEGIN
         "MAIN", DIALOG
         BEGIN
             LEFTMARGIN, 7
             RIGHTMARGIN, 180
             TOPMARGIN, 7
             BOTTOMMARGIN, 126
         END
     END
     #endif    // APSTUDIO_INVOKED


     #ifdef APSTUDIO_INVOKED
     /////////////////////////////////////////////////////////////////////////////
     //
     // TEXTINCLUDE
     //

     1 TEXTINCLUDE DISCARDABLE 
     BEGIN
         "resource.h\0"
     END

     2 TEXTINCLUDE DISCARDABLE 
     BEGIN
         "#include ""afxres.h""\r\n"
         "\0"
     END

     3 TEXTINCLUDE DISCARDABLE 
     BEGIN
         "\r\n"
         "\0"
     END

     #endif    // APSTUDIO_INVOKED


     /////////////////////////////////////////////////////////////////////////////
     //
     // Menu
     //

     IDR_MENU1 MENU DISCARDABLE 
     BEGIN
         POPUP "main"
         BEGIN
             MENUITEM "dialog",                      IDC_MENU1
         END
     END

     #endif    // 日本語 resources
     /////////////////////////////////////////////////////////////////////////////



     #ifndef APSTUDIO_INVOKED
     /////////////////////////////////////////////////////////////////////////////
     //
     // Generated from the TEXTINCLUDE 3 resource.
     //


     /////////////////////////////////////////////////////////////////////////////
     #endif    // not APSTUDIO_INVOKED

     ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

      このように、定義されています.
      これをみて、なるほどと思った方は勘がいいです.
       このようにして、RCファイルを作ることができます.
   
     ----------------------------------------------------------------
 ■■■■■■■■■■■■■■■■ 毎日届く無料メールマガジン ■■■
 ■ 『日刊フリーソフト 
 ■       win版』       Windowsユーザーさんは必見。
 ■             便利でお得なフリーソフトを紹介します。
 ■■■■ http://www.ne.jp/asahi/cineman/com/freesoft/ ■■■■
     ----------------------------------------------------------------
         ------------------------------------
☆ MSX電遊ランド 8/20 東京秋葉原開催決定 http://imahi.com/dm.htm
☆ なつかしのMSXパソコン情報誌/メル友・告知情報誌/相互広告情報誌
☆ 何が届くかわからない「やみなべ」発行中 http://imahi.com/msxmag.htm
----この広告は「相互広告ネットワーク」提供です  --------------PR----

       では、いくつかのバリエーションを知っておいたほうが
      よいので,例をあげます。
 
      これから実行することは,
      MSDN  検索 の 「Resource-Definition Statements」に
      ほとんどのことが乗っています.
      もし、いかに乗っていないことを知りたいときには,
      このページを参照ください. LTEXT などと参照すればあると思います.
     ┌─────────────────────────────┐
     #include <windows.h>
     #include "resource.h"

     //ダイアログを作成 ボタンなどの追加
     testdialog DIALOG  MOVEABLE DISCARDABLE 20,20,480,300
     STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
     CAPTION "C〜WindowsDirectXへの道"
     FONT 8,"Italic"
     VERSION 1.0
     LANGUAGE LANG_JAPANESE ,SUBLANG_ENGLISH_US
     BEGIN 
    
         CHECKBOX "チェックボックス",IDC_CHECK1,9,17,80,10
         GROUPBOX    "フレーム  ",-1,7,41,86,39
         RADIOBUTTON  "一つ目",IDC_RADIO1,13,52,37,10,WS_GROUP | WS_TABSTOP
         RADIOBUTTON "2つめ",IDC_RADIO2,13,65,39,10
         PUSHBUTTON  "消す",IDCANCEL,206,115,50,14,WS_GROUP
     COMBOBOX    IDC_COMBO1,10,130,60,90
      EDITTEXT  IDC_EDIT1,100,20,45,92,WS_HSCROLL
         LISTBOX IDC_LIST1,100,130,50,100,LBS_NOTIFY| WS_VSCROLL | WS_BORDER
     //    CTEXT     "中央寄せ",-1,200,10,150,8
     // LTEXT     "左寄せ",-1,200,30,10,150,8
     // RTEXT     "右寄せ",-1,200,50,10,150,8
     // CONTROL     "子ウィンドウ",IDC_BUTTON1,"ぼたんで〜す。",BS_DEFPUSHBUTTON |
     //             WS_TABSTOP | WS_CHILD ,45,66,48,12
     // ICON  "favorite",IDC_ICON1,40,40
     // DEFPUSHBUTTON "戻る",IDC_OK,40,10,40,14,WS_TABSTOP
SCROLLBAR  IDS_SCROLL1,450,10,8,50,SBS_VERT

     END
     //メニューの作成
     OLDMENU MENU DISCARDABLE
     BEGIN
         POPUP "&File"
      BEGIN
        MENUITEM "E&xit",IDM_EXIT
      END
     POPUP "&DirectX"
      BEGIN
        MENUITEM "Item &1",IDM_ITEM1
         MENUITEM "Item &2",IDM_ITEM2
        MENUITEM "Item &3",IDM_ITEM3
      END
     POPUP "&Help"
      BEGIN
        MENUITEM "&About My Application..",IDM_ABOUT
      END
     END

     //ストリングテーブル
     STRINGTABLE
     BEGIN
     IDS_STRING1 "C〜WindowsDirectXへの道"
      IDS_STRING2 "Default"
     END

└─────────────────────────────┘
 今回だけで,全てを説明するには,メールサーバーの50KBまでの
 範囲を余裕で超えてしまいますので,徐々に短期的に説明を
 施していきたいと思います.
 
┌─────────────────────────────┐
 それでは、まずはメインのダイアログボックスです。
 
まずは、定義を示します.
 
  DIALOG

     nameID
     load-option
     mem-option
     x,y,width,height
     option-statments
 
   となっています.
───────────────────────────────

      testdialog DIALOG  MOVEABLE DISCARDABLE 20,20,480,300
───────────────────────────────
 testdialog の部分は,そのダイアログの名前です.
 この部分をリソース名となります.

 DIALOG  の部分は、まさにダイアログを作るということです.
 また次の MOVEABLE および DISCARDABLE は、(mem-option)を設定するものです.
 
 次の 20,20,480,300 は、x、y、幅、高さなどを示します.

 今回,(load-option)を設定していませんが,
   PRELOAD      初めに読みこむ。
   LOADONCALL   必要になったときに読み込む.
 となっています.

───────────────────────────────

      STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU

───────────────────────────────

 ここでは、スタイルを設定しています.
 この部分の説明は、ほとんどがCreateWindowの時と同一ですので、
 省略します.
───────────────────────────────

      CAPTION "C〜WindowsDirectXへの道"

───────────────────────────────
 WS_CAPTION スタイルのダイアログボックスの時に使用します.
 ダイアログボックスのキャプションをつける。
───────────────────────────────

      FONT 8,"Italic"

───────────────────────────────
 ダイアログボックス内で、フォントの大きさおよび MSゴシックなどの
 書体を決めます.
───────────────────────────────

      VERSION 1.0

───────────────────────────────
 作者の任意です。バージョン指定をします.

───────────────────────────────

      LANGUAGE LANG_JAPANESE ,SUBLANG_ENGLISH_US
   
───────────────────────────────
 使用する言語を定義します.
 
───────────────────────────────
 また、最後に MENU ステートメントも存在します.
───────────────────────────────
  
          Menu testMenu
   
───────────────────────────────

 他のRCファイル内で定義していた値を設定します.
 メニューをダイアログボックスで使用します.
 
───────────────────────────────
  今回は,リソースファイルの見方を簡単に説明しました。
 
 エラーが出た場合、考えられる問題.
 #include<windows.h>
  #include "resource.h"
  リソースファイルの拡張子を、RCにしていない.
  を忘れた場合,間違いなくエラーが発生します.
 また、エラーが出た場合は,F1でも押して確かめてみてください.
  
  また、確認用に
 
───────────────────────────────
hwndMain = CreateDialog( hInstance, "testdialog" , hwndMain, (DLGPROC)DlgProc ) ;

HMENU hMenu;
hMenu=LoadMenu(hInst,"OLDMENU");
    SetMenu(hwndMain,hMenu);
 
if( hwndMain != NULL ) {
ShowWindow( hwndMain, nCmdShow ) ;
UpdateWindow( hwndMain ) ;
}
───────────────────────────────
 を示しておきます.
 忘れているかたもいる可能性がありますね。
───────────────────────────────

 それでは、次回は他のリソースの定義の仕方などを
 示していきたいと思います.
└─────────────────────────────┘  

なお、以上のプログラムは、私の動作環境VC++6.0 Win32 Application
で確認済みです.
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 発行者あとがき:
  
 最近,資格が欲しくなりました.
 その資格は,「電気通信主任技術者」です。
 あることがきっかけで,とろうと思いました.
 しかし、どこかにきっかけがあるものですね。
 
 何年計画となりそうです.
 詳しい方がいましたら,是非私宛にアドバイスをいただきいです。
 また、なにか講座などを知っている方は、宣伝でもかまいません
 私宛にメールをいただけたら幸いです.
      
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 
 メールアドレス:<mailto:rain2000@geocities.co.jp>
 ホームページ :<http://www.geocities.co.jp/SiliconValley-Bay/3125>

 発行者:rain2000
 編集 :rain2000

 このメールマガジンは,以下の発行者さんを通して発行してます.

 ●まぐまぐ:
  アドレス : http://www.mag2.com/
 ID    : 0000024922

 ●クリックインカム:
 アドレス :http://clickincome.net/
 ID    : m00002885

 ●Pubzine 
 アドレス :Pubzine (http://www.pubzine.com/)
 ID    :004293

  ●ここでメール
 アドレス : http://mail.cocode.ne.jp/
 ID    : 0400100071

 ●メルマガ天国
 アドレス : http://melten.com/
 ID    : 300

 ●E-magazine 
 アドレス :http://www.emaga.com/
 ID    :cwindows

 ●Macky   
 アドレス : http://macky.nifty.ne.jp/
 ID    : 2329

  ●カプライト  
 アドレス : http://kapu.cplaza.ne.jp/ 
 ID    : 234
 また、登録解除などの手続きに関しましては,上記の  
  ホームにてお願いします.

┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ブラウザの閉じるボタンで閉じてください。