小编ana*_*and的帖子

无法为子类编辑框控件捕获VK_RETURN键

我将一个编辑框控件子类化为

lpfnOldWndProc = (FARPROC)SetWindowLong(hEdit,GWL_WNDPROC, (DWORD)SubClassFunc);




LRESULT FAR PASCAL SubClassFunc(   HWND hWnd,
                                UINT Message,
                                WPARAM wParam,
                                LPARAM lParam)
{

    switch(Message)
    {

    case WM_CHAR:
        //Process this message to avoid message beeps.
        if ((wParam == VK_RETURN) || (wParam == VK_TAB))
        {
            //Do Something
            return 0;
        }

        break;
    case WM_KEYDOWN:
        if ((wParam == VK_RETURN) || (wParam == VK_TAB)) {
            //Do Something
            return 0;
        }

        break ;

    default:
        break;
    }

    return CallWindowProc((WNDPROC)lpfnOldWndProc, hWnd, Message, wParam, lParam);

}
Run Code Online (Sandbox Code Playgroud)

现在,当我在editbox中输入char时,将调用此子类程序.但是当按下回车键时我无法得到它.

在上述程序中这是错误的吗?

c++ winapi subclass

2
推荐指数
1
解决办法
1449
查看次数

windbg设置条件断点

我想在windbg中放置一个条件断点.

例如,让我们说LoadLibrary API.

如何加载user32.dll时,如何设置断点使其成为应有的断点.

> x kernel32!LoadLibraryW
Run Code Online (Sandbox Code Playgroud)

它会给出一些地址[XXXX]

现在我可以把断点作为

> bu [XXXX] 
Run Code Online (Sandbox Code Playgroud)

但是对于所有对LoadLibraryW的调用都会出现这种情况.

有什么建议.

debugging windbg breakpoints

2
推荐指数
1
解决办法
1万
查看次数

如何判断一个线程是否有消息队列?

有没有办法从threadId中找出,如果一个线程有消息队列?

基本上有一些windows api只有在线程有消息queue.window时才有效

c++ windows winapi message message-queue

2
推荐指数
1
解决办法
3291
查看次数

如何从地址获取字符串?

我有一个包含地址的ULONG值.

地址基本上是字符串(以NULL字符结尾的wchar_t数组)

我想要检索该字符串.

最好的方法是什么?

c++

2
推荐指数
1
解决办法
859
查看次数

为所有用户设置注册表值

为计算机上的所有用户设置注册表值的最佳方法是什么.枚举HKEY_USERS并更改ntuser.dat是一种解决方案.

可以在XP,VISTA以及Windows 7中使用的任何其他解决方案?

实际上安装程序需要将一个密钥写入注册表.并且所有用户都需要使用该密钥.一旦其使用的密钥应重置.

如果我们在HKLM中只保留一份密钥,则无法完成此操作.因为如果第一个用户使用它并重置它,那么其他用户将无法使用它.

我能想到的唯一解决方案是在所有用户中编写该密钥,但在Windows 7中不起作用.

c++ windows registry winapi

2
推荐指数
1
解决办法
4258
查看次数

Alphablend功能

是否可以使用alphablend函数使图像的某些部分透明?

我可以创建一个包含RGB(0,0,255)特定区域的图像,当我绘制该图像时,该区域应该是透明的.这可能是AlphaBlend函数.是的,那么如何?

我正在阅读有关alphablend的内容,但我仍然不清楚.我想我们需要在创建图像时指定alphachannel.如果某个像素不存在alphachannel,那么该像素不能透明?

c++ winapi gdi alphablending

2
推荐指数
1
解决办法
3825
查看次数

在Linux中调试应用程序

我想在Linux中调试应用程序.该应用程序是用C++创建的.GUI使用QT创建.GUI与静态库链接,可以将其视为应用程序的后端.

我想调试静态库但不知道如何做到这一点.

我尝试使用gdb

gdb GUI
Run Code Online (Sandbox Code Playgroud)

但是我怎么能附上图书馆呢?

有没有人在linux中调试库的经验?

c++ linux debugging gdb

1
推荐指数
2
解决办法
1960
查看次数

操作员超载

class test {
public:
    test &operator=(const test & other){} // 1
    const test & operator+(const test& other) const {} // 2
    const test & operator+(int m) {} //3
private:
    int n;
};

int main()
{
test t1 , t2, t3;

// this works fine  t1 = t2.operator+(t3) , calls  2 and 1
t1 = t2 + t3; 

// this works fine    t1 = t2.operator+ (100). calls 3 and 1
t1 = t2 + 100;

//this works fine t1 = (t2.operator+ …
Run Code Online (Sandbox Code Playgroud)

c++

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

如果函数在无限递归期间超出堆栈空间会发生什么?

有一个函数可以无限地递归调用自身.

这个函数也有一些参数.

对于每个函数调用,参数和返回地址都被压入堆栈.

对于每个进程,都有固定大小的堆栈空间,不能像堆一样动态增长.我猜每个线程也有自己的堆栈.

现在,如果一个函数被无限地递归调用并且进程耗尽堆栈空间,会发生什么?

程序会崩溃吗?OS会处理这种情况吗?有4GB的地址空间,为什么操作系统无法做些什么来增加堆栈大小.

language-agnostic recursion operating-system

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

如何设置DLL的图标?

我想在dll中添加图标.我在资源文件中添加了IDI_ICON1 ICON"icon1.ico"中的图标

但是当我构建dll时,我无法在dll中看到图标.

还有什么我需要做的来显示dll的图标.

我在VC++中开发DLL.

dll winapi icons visual-studio-2008

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