我在Microsoft Access表单中有一个列表框。MultiSelect属性设置为简单。
我想知道单击列表框中的哪个项目。请记住,可以单击一个项目来选择或取消选择一个项目。
有没有简单的方法可以做到这一点?如果没有,有没有一种复杂的方法可以做到这一点?
我尝试使用SendMessage Windows API,但没有使用香蕉,因为Access控件不支持hwnd属性。
赛斯
HWND wndHandle; //global variable
// code snipped
WNDCLASSEX wcex;
// code snipped
wcex.lpszClassName = (LPCWSTR) "MyTitleName";
// code snipped
wndHandle = CreateWindow(
(LPCWSTR)"MyTitleName", //the window class to use
(LPCWSTR)"MyTitleName", //the title bar text
...
...
Run Code Online (Sandbox Code Playgroud)
我正在关注Win32 Window应用程序的教程.上面的代码用于设置窗口屏幕标题栏的名称.编译器对我大吼:"无法从'const char [12]'转换为'LPCWSTR'"所以好吧,我用"LPCWSTR"对我的字符串"MyTitleName"进行了编码,所有编译都很好.但是,在运行时,窗口屏幕的标题结果是中文字符.我尝试改变字符串,中文字符总是根据我的字符串改变.我正在使用XP Visual C++ 2008 Express Edition,我将英语(美国)作为非unicode程序的设置.我不明白.弦怎么变成中国人?
我记得几年前,我使用的程序能够在任何Windows程序中显示任何对象(如窗口和按钮)的属性和HWND.我记得它,你只是把鼠标放在感兴趣的对象上,程序显示了信息.有谁知道我指的是什么节目以及我能抓住它的地方?
我现在正在使用游乐场SDK,需要获得我游戏窗口的WNDCLASS.我还没有在SDK中找到任何东西,这就是为什么我试图用hWnd的游戏窗口来做这件事.那么有没有办法从HWND获得WNDCLASS?我需要这个来改变游戏窗口中的系统光标
好吧,所以我需要打开一个.txt文件,该文件将在与程序相同的文件中创建.
我想使用ShellExecute(); 要做到这一点,我已经做了很多研究,我似乎无法得到正确的语法,因为我不知道如何处理参数"HWND"
我在这里寻找答案并得到了所有信息,除了要放入HWND的内容
以下是我需要使用的代码:
ShellExecute(0,"open","c:\\debug.txt",NULL,NULL,1);
Run Code Online (Sandbox Code Playgroud)
如果你不确定我在说什么,谢谢你的帮助!:)
这是我用来测试函数的程序:
#include "DAL.h"
//DAL.h added to Testing file to make compiling easier
//Created to test show_debug()
int main(void)
{
int test1,test2,final;
puts("Enter 2 numbers to add (2,2)");
scanf("%d,%d",&test1,&test2);
log_debug(test1);
log_debug(test2);
view_debug();
final= test1+test2;
printf("%d\n",final);
log_debug(final);
return(0);
}
Run Code Online (Sandbox Code Playgroud)
view_debug(); 是包含ShellExecute的函数
void view_debug(void)//WIP
//Opens the debug.txt in notepad
{
LoadLibrary( "shell32.dll" );
ShellExecute(0,"open","c:\\debug.txt",NULL,NULL,1);
}
Run Code Online (Sandbox Code Playgroud)
这是log_debug();
int log_debug(int test_variable)
//This function simply tests the programmers desired veriable & displays it for help in keeping …Run Code Online (Sandbox Code Playgroud) 这似乎是一个经典的Windows TM所显示的每个控制(按钮,列表框,菜单,...)得到它自己的窗口(如应用程序HWND).
此外,使用Windows窗体(WinForms),虽然控件不再使用经典的窗口类,但每个控件仍然有自己的Window(HWND).
但是,通过WPF创建的Windows(复数)不会使用单独的Windows(pl.)作为其控件.WPF对话框上的按钮不是单独的Window(HWND).
这对于我们(作为开发人员)可以做什么或不用WPF窗口以及它的控件与"经典"对话框窗口有什么影响,其中不仅每个控件都有自己的HWND,但是甚至Window类都是众所周知的(Button,#32770 (Dialog),...)?
我正在使用Win32 API创建窗口,我遇到了这个部分的问题:
GetMessage(&message, NULL, 0, 0);
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我尝试更改第二个参数(hwnd),它将接收消息到我之前做的窗口时,它不起作用; 例如,当我尝试关闭窗口时,它只隐藏并且不关闭.
这是完整的代码:
#include <windows.h>
LRESULT CALLBACK WinProc(HWND window, UINT message, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASS window;
window.cbClsExtra = NULL;
window.cbWndExtra = NULL;
window.hbrBackground = (HBRUSH)COLOR_BACKGROUND;
window.hCursor = LoadCursor(hInst, IDC_ARROW);
window.hIcon = NULL;
window.hInstance = hInst;
window.lpfnWndProc = WinProc;
window.lpszClassName = "WINDOW";
window.lpszMenuName = NULL;
window.style = CS_HREDRAW | CS_VREDRAW;
RegisterClass(&window);
HWND hwnd = CreateWindow("WINDOW", "Win32 Window Application", WS_OVERLAPPEDWINDOW | WS_VISIBLE, …Run Code Online (Sandbox Code Playgroud) 我正在控制台应用程序中制作游戏,我想阻止用户调整窗口大小和最大化窗口。如何使用 HWND 执行此操作?
我试图"挂钩"窗口的消息以检测最小化/最大化.我环顾四周,并认为这样做的唯一/最佳解决方案是挂钩窗口的消息,并检查WM_WINDOWPOSCHANGED消息,然后检查它的状态.
我遇到了一个问题.
System.Windows.Interop.HwndSource source = System.Windows.Interop.HwndSource.FromHwnd(System.Diagnostics.Process.GetProcessesByName("notepad")[0].MainWindowHandle);
System.Windows.Interop.HwndSourceHook hook = new System.Windows.Interop.HwndSourceHook(WndProc);
source.AddHook(hook);
Run Code Online (Sandbox Code Playgroud)
它会给我一个"对象引用不设置为对象的实例"."source.AddHook ..."上的错误.在断点时,也清楚源变量为空.换句话说:它无法在第一行获得HwndSource.
我知道可以使用"WindowInteropHelper",但是当你将实际窗口作为Windows.Window可用时,但在我的情况下,我没有.
RenéSackers 非常感谢任何解决方法/解决方案
PS我在执行代码时100%确定记事本是否正在运行,它设法找到它,它是主窗口句柄.
我正在尝试创建一个简单的窗口,但我遇到了一些问题.编译器不会给出错误,但它根本无法创建窗口的hWnd.它还说"msg"变量在没有被初始化的情况下被使用.这不是一个错误,只是一个警告,但我觉得不舒服.当我点击调试屏幕中的hWnd表时,它说"未使用的CXX0030:错误:表达式无法评估".这是代码:
#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
HWND hWnd;
MSG msg;
WNDCLASSEX wcex;
ZeroMemory(&wcex, sizeof(WNDCLASSEX));
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)COLOR_BACKGROUND;
wcex.lpszMenuName = NULL;
wcex.lpszClassName = "Breakout_Test";
wcex.hIconSm = NULL;
if(!RegisterClassEx(&wcex))
return 0;
hWnd = CreateWindowEx(NULL, "Breakout_Test", "Breakout Test (DirectX 9)", WS_OVERLAPPEDWINDOW, …Run Code Online (Sandbox Code Playgroud)