SDK 視窗程式架構及基礎 API 練習

作業繳交時間:93/11/04 (四) 下午 17:30 截止

作業繳交要求:

  1. 請將 *.h *.cpp *.c *.dsp *.dsw *.rc 等相關檔案 zip 或 rar 起來,
    debug/ 資料夾及裡面的檔案請務必刪除,
    檔名為 B9357xxxx.zip (.rar),
    並以附件形式 email 至 [email protected]
  2. email 標題列格式如下:
  3. 程式碼解壓縮後必須能夠在 VC6.0 中編譯、連結、執行
  4. 請打字說明各練習項目的程式製作方法與主要程式碼
  5. 挑選重要部分列印並撰寫說明,於11/04 上課時繳交,如果有自行設計的功能一定要在文件中強調
  6. Demo 時間: 另行公佈

練習項目:

範例程式

程式撰寫說明

  1. 音效輸出

    1. #include <mmsystem.h>

    2. Project/Settings, Link, Object/Library Modules 加入 winmm.lib

    3. GetWindowsDirectory(lpSoundFile, 100);
      strcat(lpSoundFile, "\\Media\\tada.wav");
      PlaySound(lpSoundFile, 0, SND_FILENAME|SND_ASYNC);

  2. 動畫輸出

    1. #include <commctrl.h>

    2. Project/Settings, Link, Object/Library Modules 加入 comctl32.lib

    3. 在 WinMain 中使用:

      INITCOMMONCONTROLSEX initCtrls;
      initCtrls.dwSize = sizeof(initCtrls);
      initCtrls.dwICC = ICC_ANIMATE_CLASS; InitCommonControlsEx(&initCtrls);

    4. 在對話盒編輯器中加入一個 Animate 控制項, ID 設為 IDC_ANIMATE

    5. 在對話盒的訊息處理函式內處理 WM_INITDIALOG 時加入下列:
        Animate_Open(GetDlgItem(hDlg, IDC_ANIMATE), "filecopy.avi");
        Animate_Play(GetDlgItem(hDlg, IDC_ANIMATE),0, -1, -1);

  3. GetVersionEx() 及 OSVERSIONINFO

  4. GetCursorPos() API

  5. DialogBox()
    EndDialog()

  6. SetWindowText() (對自己的視窗有效,對其它應用程式的視窗無效)
    WM_SETTEXT

  7. FindWindowEx()

  8. SendMessage()
    PostMessage()

  9. 簡單的開啟其它應用程式: WinExec()
    完整的: CreateProcess()
    C Runtime: System()

  10. 在 SDK 應用程式中加入快速鍵: 請直接在 Resource View 中編輯 Accelerator, 將選單的 ID 與快速鍵對應起來即可

  11. (非指定項目) 請嘗試將 AVI 及 WAV 檔案製作為 resource, 如此聲音及視訊將會合併在執行檔內

  12. (非指定項目) 請嘗試在不同的地方開啟動畫控制項, 你需要使用下列 API
    1. Animate_Create()
    2. SetWindowPos()
    3. Animate_Open()
    4. ShowWindow()

  13. (非指定項目) 請嘗試設計如範例執行程式中的 Combo Box 及其功能, 你需要查詢 MSDN Library 中的 "combo boxes [Win32]" 項目中的 reference 以及 Buttons Overview, BM_SETCHECK, BN_CLICKED

  14. (非指定項目) 請嘗試設計如範例執行程式中的 Month Calendar Control 你需要查詢 MSDN Library 中的 "Month Calendar Controls" 使用
    1. INITCOMMONCONTROLSEX initCtrls;
      initCtrls.dwSize = sizeof(initCtrls);
      initCtrls.dwICC = ICC_DATE_CLASSES;
      InitCommonControlsEx(&initCtrls);
    2. MCM_GETCURSEL

  15. 範例執行程式 (Combo 部份未完成)

視窗環境應用程式設計課程 首頁

製作日期: 10/21/2004 by 丁培毅 (Pei-yih Ting)
E-mail: [email protected] TEL: 02 24622192x6615
海洋大學 工學院 資訊工程系