要创建一个控件,并且让这个控件加到parent container里面的时候,他的句柄才算创建,否则老是用线程等待是不会成功的。
现象:在启动一个线程线程任务是否及时办理的线程中,往控件写信息的时候老是出现错误。
在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke。
错误发生在这句代码上:
gridControl1.BeginInvoke(dd, list);
后来采用让线程等待主界面加载完毕的时候执行,还是报同样的错误。这时候发现时句柄根本没有创建好。那么我何不在确定已经创建完UI的各个句柄后在启动线程呢?于是我移动了代码,让他靠后执行,郁闷还是不行。然后发现,这个UC控件 new出来之后没有属于任何一个父窗体,他飘在哪里,这样句柄就没有创建出来,于是修改代码,顺利通过。
让我们来复习一下,句柄是什么?
句柄,是整个windows编程的基础。一个句柄是指使用的一个唯一的整数值,即一个四字节长的数值,来标志应用程序中的不同对象和同类对象中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。应用程序能够通过句柄访问相应的对象的信息,但是句柄不是一个指针,程序不能利用句柄来直接阅读文件中的信息。如果句柄不用在I/O文件中,它是毫无用处的。 句柄是windows用来标志应用程序中建立的或是使用的唯一整数,windows使用了大量的句柄来标志很多对象。
这时百度百科里面的介绍,基本概念都一样,看我们如何理解,理解是否到位。
句柄的作用是什么,什么时候创建,何时销毁?
句柄到底是如何表示的?
Linux中也是类似的概念吗?Linux是如何表示的?
顺便熟悉一下:跨线程访问控件是如何实现的。Invoke内部是在怎么走的?
必须是用修改的控件来Invoke吗?
先放出来,督促自己来完善笔记。
分享到:
相关推荐
在IT领域,尤其是在编程实践中,窗口句柄是一个重要的概念,特别是在Windows操作系统下的应用程序开发中。窗口句柄(HWND)是Windows API提供的一种机制,用于唯一标识一个窗口对象。它是一个整数值,用来作为函数...
在Windows操作系统中,窗口句柄(HWND)是一个用于标识应用程序窗口的唯一标识符。当我们需要获取与特定窗口关联的进程ID时,可以使用Windows API中的`GetWindowThreadProcessId`函数。这个函数允许我们从窗口句柄中...
在C#编程中,窗口句柄(HWND)是操作系统用于标识和引用窗口对象的一个整数值。它是Windows API(应用程序接口)中的核心概念,允许开发者对窗口进行各种操作,如发送消息、改变窗口状态、获取窗口信息等。本篇文章...
窗口句柄获取及API的调用: .版本 2 .程序集 窗口程序集1 .子程序 _按钮_点击按钮_被单击 .局部变量 父窗口句柄, 整数型 .局部变量 编辑框窗口句柄, 整数型 .局部变量 按钮窗口句柄, 整数型 .局部变量 临时文本, ...
本文将深入探讨如何在易语言中实现鼠标获取窗口句柄的功能,并以此为基础,讲解相关的核心知识点。 首先,窗口句柄(HWND)是Windows操作系统中用于标识和引用窗口的一个唯一标识符。在编程中,我们经常需要获取...
然而,Java原生并不支持直接操作操作系统级别的资源,如窗口句柄。为了弥补这个不足,开发人员可以使用Java Native Access (JNA),这是一个Java平台上的库,允许Java代码调用本机库函数,与操作系统进行更直接的交互...
### 通过进程ID找到窗口句柄 在计算机编程领域中,有时我们需要与操作系统进行更深层次的交互,例如:为了自动化测试、系统监控或是其他高级应用的目的,我们需要通过进程ID(Process ID, PID)来查找特定窗口的...
动态捕获Windows窗口句柄工具。 Inspect 支持无焦点窗口捕获,可动态实时监听当前系统打开的窗口,并获取窗口的详细信息。 可以很方便的对软件进行模拟操作。。。 DDDD 动态捕获Windows窗口句柄工具。 Inspect 支持...
5. **从C++向QML传递窗口句柄**:如果你需要在C++中创建CustomWidget并将其添加到QML窗口,可以使用`QQmlEngine::setObjectParent`方法,并传递窗口句柄。 ```cpp CustomWidget *customWidget = new CustomWidget...
标题中的“易语言遍历方法枚举窗口句柄”是一个关于Windows编程的知识点,主要涉及易语言(EasyLanguage)这个编程环境以及如何在其中遍历并枚举窗口句柄。易语言是中国的一种特色编程语言,它以简洁明了的汉语词汇...
在Java编程环境中,获取窗口句柄(Window Handle)通常是与操作系统进行交互的一种方式,主要用于控制或检测特定的图形用户界面(GUI)元素。在Java中,这种操作涉及到AWT(Abstract Window Toolkit)和Swing库,这...
【标题】:“窗口句柄捕获工具”是一种实用程序,专为开发者设计,用于便捷地实时获取鼠标指针下方窗口的句柄。这个小工具在功能上超越了经典的Spy++,提供了一个更简单、更直观的界面来追踪和分析Windows应用程序的...
在Windows操作系统中,窗口句柄(HWND)是一个用于标识应用程序中独特窗口的整数值。它在编程中扮演着至关重要的角色,因为它是Windows API(应用编程接口)与窗口交互的基础。当你需要对某个特定的窗口进行操作,如...
回调函数必须遵循特定的约定,即接受两个参数:一个是窗口句柄(`ByVal hWnd As Long`),另一个是用户数据(`ByVal lParam As Long`)。例如: ```vb Public Delegate Function EnumWindowProc(ByVal hWnd As Long...
在编程领域,窗口句柄是操作系统提供的一种机制,用于唯一标识和引用应用程序中的窗口。在Windows操作系统中,窗口句柄(HWND)是一个整数值,它代表了一个特定的窗口实例。本教程将深入探讨如何在C#中获取任意窗口...
这通常涉及到对Windows API函数的调用,以便能够从一个已知的窗口句柄(HWND)中提取出窗口的标题文本。以下是对如何使用窗口句柄获取窗口标题的详细解析。 ### 知识点一:窗口句柄(HWND) 窗口句柄是Windows系统...
"指定窗口截图,窗口句柄截图"这个主题就是关于如何利用编程手段,通过窗口的句柄(Handle)来捕获并保存该窗口的图像。在这个场景中,我们主要涉及到的技术是Windows API,特别是与图形设备接口(GDI)相关的函数。...
在编程领域,窗口句柄(Window Handle)是一个重要的概念,特别是在使用Visual Basic(VB)进行Windows应用程序开发时。窗口句柄是操作系统分配给每个窗口的一个唯一标识符,它是一个整数值,用来区分系统中的不同...
在Microsoft Visual C++ (VC) 开发环境中,窗口句柄(HWND)是Windows API中用于标识应用程序窗口的一个重要标识符。窗口句柄是系统分配的一个唯一整数值,它允许程序与特定窗口进行交互。本篇文章将详细介绍在VC中...
VC获得进程ID获得主线程ID获得窗口句柄获得主窗口获得进程名 1.窗口类名 窗口句柄 窗口标题 窗口句柄 HWND FindWindow( LPCTSTR lpClassName, //窗口类名 可用 VC或者VS自带的Spy++查看 LPCTSTR lpWindowName //...