WIN32APIの不便なところ


DESC C で記述されているため すべてのシンボルがグローバルにあるため マクロなどの名前の付け方が煩雑。 大量の API と操作対象のオブジェクトの結びつきがわかりずらい。 POINT なんで, OO が有効か ? SetDlgItemText() を 例にとって考える どれが, どの Object (もの)に Bind されているか不明 そのため 操作対象に 近いところにあると便利 WARNING ShowWindow( hWnd, nCmdShow ); とすること. Windows 固有の型が多い。 HBRUSH # define DECLARE_HANDLE( HBRUSH ) struct name##__ { int unused; }; typedef struct name##__ *name // 実体は int 型をもつ struct struct HBRUSH__{ int unused; }; typedef struct HBRUSH__ *HBRUSH; HICON も同じ ( 任意のポインタと同じ。 ) DECLARE_HANDLE( HINSTANCE ); # define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name struct HINSTANCE__{ int unused; }; typedef struct HINSTANCE__ *HINSTANCE


WindowsProgram.の基本


C で [ 直接 ] WIN32API を呼ぶ. OO , Class を学ぶには Java の方がよい. -> Java で学ぶ. GUI の Design わかりやすさ == 認知的要素. Sequence( 処理手順 ) を設計する. Affordance ( 促進 ) -> Buttton が 押すことを 促進する. -> Affordance が高いと, 説明が不要. Mapping( 対応つけ ), Controler と Model(View)の関連づけ. HeuristicEvaluation( わかりやすい GUI のために ) 簡単な会話( 最小限の用語で ) User の言葉を利用( User の知っている 概念. 言葉を使用 ) 一貫性( 慣例 )に従うこと. EtrorCode ではなく, [ 建設的 ]な解決策を示すこと. 誤りを防ぐこと.