
如图所示,我用系统的TPopupMenu做的一个快捷菜单,有时候显示一片空白,鼠标移上去

procedure TPopupMenu.Popup(X, Y: Integer);
const
Flags: array[Boolean, TPopupAlignment] of Word =
((TPM_LEFTALIGN, TPM_RIGHTALIGN, TPM_CENTERALIGN),
(TPM_RIGHTALIGN, TPM_LEFTALIGN, TPM_CENTERALIGN));
Buttons: array[TTrackButton] of Word = (TPM_RIGHTBUTTON, TPM_LEFTBUTTON);
var
AFlags: Integer;
begin
SetPopupPoint(Point(X, Y));
SetBiDiModeFromPopupControl;
DoPopup(Self);
FItems.InternalRethinkHotkeys(False);
FItems.InternalRethinkLines(False);
FItems.RebuildHandle;
AdjustBiDiBehavior;
AFlags := Flags[UseRightToLeftAlignment, FAlignment] or Buttons[FTrackButton] or
(Byte(FMenuAnimation) shl 10);
TrackPopupMenu(FItems.Handle, AFlags, X, Y, 0 { reserved }, PopupList.Window, nil);
end;
就无能为力了。
另外我用:
for i := 0 to 10 do
TThread.CreateAnonymousThread
( procedure()
begin
while True do
begin
SendMessage(Handle, 1100, 200,200);
sleep(100);
end;
end).Start();
消息处理:
procedure TForm6.WMPopupMain(var Msg: TMessage);//1100消息
begin
PopupMenuMain.Popup(Msg.WParam, Msg.LParam);
end;
反复运行上面的代码可以重现上面所描述的现象。
小弟我求各位大大解析一下原因。
------解决方案--------------------------------------------------------
是不是显示卡问题啊,到别计算机也是这样吗?
------解决方案--------------------------------------------------------
是你电脑太慢了。。
------解决方案--------------------------------------------------------
估计是windows中招了。
如方便的话,将工程发来测试下:190814570@qq.com
------解决方案--------------------------------------------------------
你用的WIN7?
估计跟这个类似
http://bbs.csdn.net/topics/370218370