0

これはかなり単純なはずですが、なぜ機能しないのか、一生わかりません。私は多くのグーグルとMSDNを行いましたが、これ以上役立つものは見つかりませんでした.

    SendMessage(GetDlgItem(hwnd, IDC_ANCIENT), BM_SETSTYLE, (WPARAM)(BS_LEFTTEXT), (LPARAM)TRUE);
    Button_SetStyle(GetDlgItem(hwnd, IDC_ANCIENT), BS_LEFTTEXT, TRUE);

それが私が持っているものです。パラメータは正しく、スタイル BS_3STATE をテストしたところ、うまくいきました。再描画するように設定しています。ダイアログの WM_INITDIALOG メッセージ内にこれらの行があります。

ダイアログとそのすべては、私のリソース ファイルに含まれています。

何か案は?

ありがとう。

http://imageshack.us/a/img153/6594/rydv.jpg

4

2 に答える 2

2

リソース ファイル エディターをダウンロードしたところ、解決策が見つかりました。

           DEFPUSHBUTTON      "Ancient Crystal [Click]",IDC_ANCIENT,15,292,140,12, BS_LEFT 

リソース ファイルに BS_LEFT スタイルを配置すると、テキストが左揃えになります。

編集: 最終的な注意 ダイアログへの適切なハンドルを持たないプロシージャ内でフォントの配置を変更しようとしていました。メインウィンドウにハンドルを渡す手続きをしていました。

于 2013-07-16T23:59:44.400 に答える
2

BS_LEFTTEXT はボタンでは機能しません。MSDNから(強調を追加):

BS_LEFTTEXTラジオ ボタンまたはチェック ボックス スタイルと組み合わせると、ラジオ ボタンまたはチェック ボックス の左側にテキストを配置します。BS_RIGHTBUTTON スタイルと同じです。

あなたが望むもののために、おそらく所有者描画コントロールを行う必要があります。BS_OWNERDRAW同じリンクのスタイルをチェックしてください。

于 2013-07-15T23:26:49.693 に答える