- ベストアンサー
構造体のマスクというメンバ
一般的な構造体についての質問です。 例えば CHOOSECOLOR 構造体のようにメンバにマスクを持つ構造体があって、 その構造体に値を代入する関数を使うには、CHOOSECOLOR 構造体のマスクを 設定し、そのマスクで有効にしたメンバだけが値を入れられるんですよね? マスクを持つ構造体というのは、それに値を入れる関数を使う前に マスクを指定してから、その構造体のアドレスを関数の引数にセット するんですよね? マスクは無視されて、それ以外の全てのメンバに値が入るというわけでは ないですよね?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
CHOOSECOLORにマスクは無いと思いますよ。 CHARFORMATですか?CHARFORMATならEM_GETCHARFORMATでbCharSetメンバだけに値を得ることになっているからEM_GETCHARFORMATするときのマスクは参照されません。 その他、SCROLLINFOとか普通のやつはマスクで有効にしたメンバだけがGet*()で得られるメンバです。
その他の回答 (1)
- taka_tetsu
- ベストアンサー率65% (1020/1553)
>例えば 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が指す配列くらいだと思いますけど。
お礼
ありがとうございました。
お礼
ありがとうございました。