none
VC++2005关于SendMessage的问题 RRS feed

  • 问题

  • 我是从VB转到C++的,我现在有几个问题,希望大家帮帮忙!谢谢!

    <我使用的是Visaul C++ 2005>

    我创建了一个CLR项目的Windows应用程序,我想使用SendMessage函数向指定程序(如记事本)发送一个按键消息,但我不知道如何引用此函数,需要使用什么命名空间吗?或是要定义一个包函文件?
    还有要想激活一个后台程序窗口,使之获得焦点,该怎么办呀?

    2009年4月27日 10:53

答案

  • 开头加这个:using namespace System::Runtime::InteropServices;
    SendMessage 函数是一个外部的函数在 Winuser.h 文件中声明的并且,包含 Windows.h 文件。 要纳入 Form1.h 文件 Windows.h 文件,添加下面的 # include 语句添加在上一步中的代码之前:
    #include <windows.h>
    使用的时候这样调用:
    int result;

    // Send an LB_SETTABSTOPS message to the ListBox control.
    result = SendMessage((HWND)this->listBox1->Handle.ToInt32(),
    LB_SETTABSTOPS, 2, (LPARAM)&ListBoxTabs[0]);

    周雪峰
    2009年4月28日 7:33
    版主

全部回复

  • 你好!
         这样试试:   
    ::SendMessage(hWnd, BFFM_SETSELECTION, TRUE, (LPARAM)lpDialog
    ->
    tmpPath_);

    周雪峰
    2009年4月27日 13:53
    版主
  • 不行,提示“SendMessage”不是“global namespace”的成员。
    是不是要引用什么啊?

    2009年4月28日 6:16
  • 开头加这个:using namespace System::Runtime::InteropServices;
    SendMessage 函数是一个外部的函数在 Winuser.h 文件中声明的并且,包含 Windows.h 文件。 要纳入 Form1.h 文件 Windows.h 文件,添加下面的 # include 语句添加在上一步中的代码之前:
    #include <windows.h>
    使用的时候这样调用:
    int result;

    // Send an LB_SETTABSTOPS message to the ListBox control.
    result = SendMessage((HWND)this->listBox1->Handle.ToInt32(),
    LB_SETTABSTOPS, 2, (LPARAM)&ListBoxTabs[0]);

    周雪峰
    2009年4月28日 7:33
    版主