• ベストアンサー

構造体のマスクというメンバ

一般的な構造体についての質問です。 例えば CHOOSECOLOR 構造体のようにメンバにマスクを持つ構造体があって、 その構造体に値を代入する関数を使うには、CHOOSECOLOR 構造体のマスクを 設定し、そのマスクで有効にしたメンバだけが値を入れられるんですよね? マスクを持つ構造体というのは、それに値を入れる関数を使う前に マスクを指定してから、その構造体のアドレスを関数の引数にセット するんですよね? マスクは無視されて、それ以外の全てのメンバに値が入るというわけでは ないですよね?

質問者が選んだベストアンサー

  • ベストアンサー
  • kawa100
  • ベストアンサー率83% (5/6)
回答No.2

CHOOSECOLORにマスクは無いと思いますよ。 CHARFORMATですか?CHARFORMATならEM_GETCHARFORMATでbCharSetメンバだけに値を得ることになっているからEM_GETCHARFORMATするときのマスクは参照されません。 その他、SCROLLINFOとか普通のやつはマスクで有効にしたメンバだけがGet*()で得られるメンバです。

A__
質問者

お礼

ありがとうございました。

その他の回答 (1)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

>例えば CHOOSECOLOR 構造体のようにメンバにマスクを持つ構造体があって、 具体的にCHOOSECOLORのどのメンバのことでしょうか? Flagsのことでしょうか? マスクとおっしゃっていることの意味がちょっと分からないので・・・ CHOOSECOLOR構造体は、はChooseColor()をコールするために 必要な情報の受け渡しに使うものだと思うのですが。 typedef struct { /* cc */ DWORD lStructSize;//構造体サイズ HWND hwndOwner;//親ウィンドウハンドル HWND hInstance;//インスタンスハンドル DWORD rgbResult;//最初および選択された色 LPDWORD lpCustColors;//カスタムカラー配列アドレス DWORD Flags;//ダイアログの初期化フラグ DWORD lCustData;//フック関数に渡す32bit値 LPCCHOOKPROC lpfnHook;//フックプロシージャのアドレス LPCSTR lpTemplateName;//ダイアログテンプレート名 } CHOOSECOLOR; これを見る限り、ChooseColor()が内容を変更するのはrgbResultとlpCustColorsが指す配列くらいだと思いますけど。

A__
質問者

お礼

ありがとうございました。

関連するQ&A