我被卡住了。
现在,我正在使用以下代码来侦听热键:
[DllImport("user32.dll")]
public static extern bool RegisterHotKey(IntPtr hWnd,
int id, int fsModifiers, int vlc);
[DllImport("user32.dll")]
public static extern bool UnregisterHotKey(IntPtr hWnd, int id);
protected override void
我正在尝试在我的程序中添加驱动器检测,但我遇到了一些困难。当我尝试使用此上指定的代码时。我目前正在为我的项目使用windows,但我遇到了让它工作的问题。
namespace Project
{
public partial class MainWindow : Window
{
OTHER CODE
private const int WM_DEVICECHANGE = 0x219;
protected override void WndProc(ref Message m)
关于重写Windows / NativeWindow的WndProc方法,我有一些问题。
WndProc和DefWndProc之间到底有什么区别(编辑:我以为它以前被称为"DefaultWndProc“)?我只能覆盖WndProc,但是DefWndProc是为了什么,我可以随时调用它吗?
以及在我的重写方法中调用base.WndProc的位置?还是我应该打电话给DefWndProc呢?我想到了以下几个立场:
protected override void WndProc(ref Message m)
{
// 1st: I call the base handler at th
我创建了自己的自定义GUI按钮类,用于Windows应用程序。意识到我需要一些更精细的控制,为了消除双击烦恼,我想我所需要做的就是像往常一样对它进行子类处理。
但是,既然我已经把所有的东西都封装成了一个类,事情似乎就变得复杂了。
下面是我想做的事情的一个片段
// Graphic button class for Wizard(ing) dialogs.
class CButtonUXnav
{
private:
// Local subclasses of controls.
WNDPROC wpOldButton; // Handle to the orig
如何知道用户执行了什么操作,如关机、重启、待机、锁定或注销。我已经使用了下面的代码来检查它,但是我想识别每种情况并执行一个操作accordingly.please建议一些方法来了解windows窗体应用程序中的这些细节
private static int WM_QUERYENDSESSION = 0x11;
protected override void WndProc(ref System.Windows.Forms.Message m)
{
if (m.Msg == WM_QUERYENDSESSION)
{
Me
我有一份错误报告:
Collection is read only.
at System.Windows.Forms.SplitContainer.SplitContainerTypedControlCollection.SetChildIndexInternal(Control child, Int32 newIndex)
at System.Windows.Forms.Control.ControlCollection.SetChildIndex(Control child, Int32 newIndex)
at System.Windows.Forms.Control.UpdateChi
我尝试使用JNA注入我自己的WndProc方法来捕获Java程序中的Windows消息。因为我只对几种消息类型感兴趣,所以我必须将消息转发到以前的WndProc。在我的测试中(Windows7上的Java 1.7.0_03,64位),当我将鼠标移到创建的窗口上时,这个转发似乎就失败了,给了我以下异常:
com.sun.jna.LastErrorException: [2]The system cannot find the file specified.
at com.sun.jna.Native.invokeLong(Native Method)
at com.sun.jna
在windows vista高级版上安装我的程序后,我得到了以下异常。
必须显示的视图包含以下控件:2个文本框、3个标签、一个按钮和linkbutton。
System.OutOfMemoryException: Out of memory.
at System.Drawing.Graphics.FromHdcInternal(IntPtr hdc)
at System.Windows.Forms.PaintEventArgs.get_Graphics()
at System.Windows.Forms.Control.PaintException(PaintEventArg
我在主线程中创建了两个WndProcs,然后将来自其他线程的消息发送给每个线程,几乎同时进行,但从WndProc1开始。这个WndProc1有一份工作要做一段时间.它在开始和结束的时候签字。当被访问时,WndProc2也发出信号。现在,当我按下按钮开始这个测试,我得到:“P1-输入.延迟.P1-离开WndProc2”。如您所见,第二条消息等待WndProc1完成,尽管他被发送到WndProc2!我想知道的是,如果这两个WndProcs没有任何共同之处,那么这个序列化是如何工作的?我认为,如果我有两个不同的组件,每个组件都有自己的WndProc (但我没有检查),就会发生这种情况。
unit U
我正在对一个应用程序进行子类化。我的子类窗口过程在DLL中。我在DLL中的子类代码看起来有点像这样(去掉,删除了其他不相关的部分)。
class FooBar
{
private delegate int WndProcDelegateType(IntPtr hWnd, int uMsg,
int wParam, int lParam);
private const int GWL_WNDPROC = (-4);
private static IntPtr oldWndProc = IntPt
可能只是某种粗略的疏忽,但我在消息循环中没有收到任何WM_SIZE消息。但是,我会在WndProc中接收它们。我以为windows循环给WndProc发消息了?
LRESULT CALLBACK WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
{
switch(message)
{
// this message is read when the window is closed
case WM_DESTROY:
{
// close
我有一个问题,就是在离开程序一段时间后,比如说5分钟或更长时间,用户界面开始消失,例如:按钮、标签.等
然后,如果我试图单击任何内容,它将显示一个错误,如下所示:out of memory
我使用自定义控件,这些控件是: Bunifu_UI_v1.5.3
但是我使用了一些简单的东西,比如datagridview和datetimepicker选择器。
但我并不认为问题出在这里,因为我使用的几乎所有东西都是原始视觉工作室的原始控件。
有很多这样的代码:
Private Sub close_butt_MouseEnter(sender As Object, e As EventArgs) Handl
当用户按键盘上的a键时,下面的代码可以工作,并将打印到Label1:
Public Class Form1
Sub New()
InitializeComponent()
End Sub
Public Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" (ByVal HWND As IntPtr, ByVal WMSG As Integer, ByVal WPARAM As Integer, ByVal LPARAM As IntPtr) As IntPtr
Pr
我收到用户说我的应用程序崩溃了,他在事件查看器中看到了这一点:
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.AccessViolationException
Stack:
at System.Drawing.SafeNativeMethods+Gdip.GdipDrawRectangleI(System.Runtime.InteropServices.Ha
我有这个HeaderlessTabControl,它对经典的TabControl进行了子类。
// From http://social.msdn.microsoft.com/forums/en-US/winforms/thread/c290832f-3b84-4200-aa4a-7a5dc4b8b5bb/
// Author: Hans Passant (nobugz)
public class HeaderlessTabControl : TabControl {
protected override void WndProc(ref Message m) {
//
我有一个用VS.NET 2003开发的windows应用程序。有时我会从CallWindowProc()得到System.NullReferenceException异常。
下面是异常的堆栈跟踪
Error_Stack_Trace : at System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc,IntPtr hWnd,Int32 msg,IntPtr wParam,System.Windows.Forms.NativeWindow.DefWndProc(Message& m) at System.W