我正在尝试记录画图消息以解决问题,我需要一种方法来知道WM_PAINT消息是否必须删除背景,所以我在WM_PAINT处理中这样做了:
hdc = BeginPaint(hwnd,&ps);
//code to output the Invalid RECT is ommited.....
if(ps.fErase){
//output true
}else{
//output false
};
ps.rcPaint有正确的值,但是ps.fErase总是"false“,即使我调用InvalidateRect(hwnd,0,true);,其中hwnd是我记录WM_P
我正试图制作一个程序来控制一个用箭头键移动的盒子,我的code.Is有一个问题,可以通过SendMessage发送一条消息到WM_PAINT,在按左键的时候画一个新的矩形吗?以下是我的代码
case WM_KEYDOWN:
switch(wParam)
{
case VK_LEFT: //LEFT MOVEMENT
SendMessage(hwnd,WM_PAINT,VK_LEFT,0);
break;
case VK_ESCAPE:
我想在氪星工具包面板控制中心画一条线,但这条线没有画出来。
我在这里试过两种方法:
这是:
Public Class Form1
Private Sub KryptonPanel1_Paint(sender As Object, e As PaintEventArgs) _
Handles KryptonPanel1.Paint
Using p As New Pen(Brushes.YellowGreen)
e.Graphics.DrawLine(p, sender.Width \ 2, 0, sender.Width \ 2, sender.Bottom)
我正在摆弄窗口,到目前为止,我确实有一个尖叫,当我点击(按钮向下)并拖动,然后松开(按钮向上),我们有一个square...how当我调整窗口大小时它消失了吗?为什么?我遗漏了什么?感谢您抽出时间来审阅这篇文章。
//LEFT BUTTON DOWN MOVEMENT
case WM_LBUTTONDOWN:
// if not drwing then save start poostion and set drawing flag
// goes here startPosition
if(! isDrawing )
{
当我调整窗口的大小时,我在窗口的消息处理程序中得到了几条WM_PAINT消息/事件,尽管我只translate+dispatch一条消息。
这是正常的吗?为什么会发生这种情况?(我原以为每次发送都会收到一条WM_PAINT消息,但仅此而已)
窗口循环:
while (true) // only for the example
{
std::cout << "Checking events\n";
MSG winEvent = {};
while (PeekMessage(&winEvent, NULL, 0, 0, PM_REMOV