3

WinAPIを使用してDでGUIプログラミングを実行しようとしています。私の問題は、別のユーザーが尋ねた質問のようにボタンが見苦しいことです。それを解決するために、マニフェストをDアプリケーションに埋め込みたいと思います。実行可能ファイルにリソースを含めることができるとすぐに、このMicrosoftのドキュメントに従って、マニフェストを手動で追加できるようになります。

だから私の質問は:Visual StudioのDアプリケーションにリソースを含めるにはどうすればよいですか?それをすることさえ可能ですか?そうでない場合、ボタンの見栄えを良くする他の方法はありますか?

4

5 に答える 5

1

それが実際に「リソース」であることを気にしないが、バイナリに埋め込まれたファイルからのデータブロブが必要な場合。「インポート式」をご覧ください

于 2012-09-04T14:38:09.487 に答える
1

少し醜いですが、それは仕事を成し遂げます、マニフェストはありません:

auto enableVisualStyles()
{
    TCHAR dir[MAX_PATH];
    dir[GetSystemDirectory(dir.ptr, dir.length)] = '\0';
    auto actCtx = ACTCTX(
        ACTCTX.sizeof, 0x0C, "shell32.dll", PROCESSOR_ARCHITECTURE_INTEL,
        0, dir.ptr, MAKEINTRESOURCE(124), null, HMODULE.init);
    ULONG_PTR ulpActivationCookie;
    return ActivateActCtx(CreateActCtx(actCtx), ulpActivationCookie);
}

プログラムの開始時に必ず一度呼び出してください。

于 2012-09-03T09:28:36.090 に答える
1

私はdmdのVisualStudioへの統合に精通していませんが、必要なことを実現する1つの方法は、コンパイルされた.resファイルをdmd.exeに渡されるファイルのリストに追加することです。例えば:

dmd.exe main.d manifest.res

VS統合には、IDEがコードのコンパイルに使用するdmdコマンドにファイルを追加する方法があると思います。

于 2012-09-03T09:40:52.093 に答える
0

dsssを使用した古いプロジェクトを見てください:

$cat dsss.conf

[*]
buildflags+=-Jresources

version(Windows) {
    version(gui) {
        buildflags+= -L/SUBSYSTEM:windows:5
    } else {
        buildflags+= -L/SUBSYSTEM:console:5
    }
    buildflags+= -L/rc:.\resources\dwt
    ...
}
...

これは次のように変換されます。

dmd -JRES_PATH -L/rc:.\RES_PATH\MANIFEST_WHITHOUT_RES_EXT ...
于 2012-09-05T11:45:22.727 に答える
0

ここで「VisualStyles」の例を確認してください:https ://github.com/AndrejMitrovic/DWinProgramming/tree/master/Samples/Extra

また、「ThemedSimpleWakeUp」サンプルはリソースファイルを使用しますが、「ThemedWakeUp」は視覚的なスタイルを動的に有効にします。

于 2012-09-03T21:11:56.477 に答える