小编Pau*_*aul的帖子

窗口定位导致Windows 10上的窗口周围的空间

我有一些代码将窗口定位到屏幕象限.它适用于Windows XP,7和8/8.1.但是,在Windows 10上,窗口之间存在奇怪的差距.四面环绕窗户的额外空间.我认为它与窗口边界有关,但无法弄清楚如何纠正问题.任何意见都将受到高度赞赏.代码如下:

// Get monitor info
HMONITOR hm = MonitorFromWindow(hWnd, MONITOR_DEFAULTTONEAREST);
MONITORINFO mi;
mi.cbSize = sizeof(mi);
GetMonitorInfo(hm, &mi);

// Set screen coordinates and dimensions of monitor's work area
DWORD x = mi.rcWork.left;
DWORD y = mi.rcWork.top;
DWORD w = mi.rcWork.right - x;
DWORD h = mi.rcWork.bottom - y;

switch (corner) {
case 0: // Left top
    SetWindowPos(hWnd, HWND_TOP, x, y, w / 2, h / 2, SWP_NOZORDER);
    break;
case 1: // Right top
    SetWindowPos(hWnd, HWND_TOP, x + w / …
Run Code Online (Sandbox Code Playgroud)

windows winapi

9
推荐指数
1
解决办法
1181
查看次数

注册表调用与在静态变量中存储用户选项的效率

我有一个程序,在注册表中存储一些用户选项(约5个选项).选项是从内联函数中的注册表中获取的.在运行时需要多次检查选项.更具体地说,在一个例程中检查选项可以在一个例程中向上调用100次.

我的问题是哪个更有效:1)每次需要检查选项时,调用内联函数从注册表中获取选项; 或者2)调用内联函数一次,然后将结果存储在静态变量中,然后将其用于检查选项.

请注意,我不关心在运行时更改选项,因为它们很少更改,并且在下一次运行程序之前无需生效.

任何反馈都将受到高度赞赏.

c++ windows

4
推荐指数
2
解决办法
191
查看次数

C ++实现修剪前导/尾随空格的Char数组无法按预期工作

我正在尝试实现一种简单安全的方法来修剪前后两个空格的char数组。它可以删除开头的空格,但不适用于另一侧。谁能看到我在做什么错?这是我的代码:

template<size_t charCount>
void strtrim_safe( char (&output)[charCount] ) {
  char *ptr = output;
  size_t n = charCount;
  size_t start = 0;
  size_t end = 0;

  // Find the start and end position of trimmed string
  while ( n-- != 0 && *ptr != 0 ) {
    if ( *ptr == 32 ) {
        if ( end == 0 ) {
            start++;
        } else {
            break;
         }
    } else {
        end++;
    }

    ptr++;
  }

  // Shift the char array 
  for ( …
Run Code Online (Sandbox Code Playgroud)

c++

0
推荐指数
1
解决办法
8432
查看次数

标签 统计

c++ ×2

windows ×2

winapi ×1