我想在我的应用程序中更改标题栏的颜色,就像我在Skype预览程序中看到的那样.我发现在互联网上只提供了一个解决方案(WM_NCPAINT),这似乎要求我绘制一个完全自定义的标题栏,当我想要做的只是改变背景颜色时当然不是理想的.有人知道更好的解决方案吗?有人建议挂钩GetSysColor,但从不使用索引2(COLOR_ACTIVECAPTION)调用它,因此从其他地方检索颜色.
当前标题栏:

最终目标:

目前我正在使用这个功能,我通过互联网阅读几个松散相关的问题拼凑而成.我遇到的问题是,我第一次运行它时返回错误,但不幸的是我无法重现它.现在,当我运行它时,它每次只返回0.
DWORD GetAddressOfString(char *input)
{
unsigned char *p = NULL;
MEMORY_BASIC_INFORMATION info;
HANDLE process = OpenProcess(PROCESS_ALL_ACCESS, FALSE, _processID);
for (p = NULL; VirtualQueryEx(process, p, &info, sizeof(info)) == sizeof(info); p += info.RegionSize)
{
if (info.State == MEM_COMMIT && (info.Type == MEM_MAPPED || info.Type == MEM_PRIVATE))
{
char *buffer = new char[info.RegionSize];
SIZE_T bytesRead;
ReadProcessMemory(process, p, &buffer, info.RegionSize, &bytesRead);
for (int i = 0; i <= (info.RegionSize - sizeof(input)); i++)
{
if (memcmp(input, &buffer[i], sizeof(input)) == 0)
{
return i;
}
} …Run Code Online (Sandbox Code Playgroud)