急!VC++2005 的问题

swiftding 2007-01-01 10:52:52
//窗体的MouseDoubleClick事件
private: System::Void WM_OnMouseDoubleClick(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e)
{
PictureBox ^pictureBox = gcnew PictureBox();
pictureBox->Location = Point(e->X-(pictureBox->Width/2),e->Y(pictureBox->Height/2));
Image ^image = Image::FromFile("BoxOn.jpg");
pictureBox->BackgroundImage = image;
pictureBox->BackgroundImageLayout = ImageLayout::Stretch;
this->Controls->Add( pictureBox );
//动态调用Form1的Paint事件
this->Paint += gcnew System::Windows::Forms::PaintEventHandler(this,
&Form1::WM_OnPaint);
Invalidate(false);//重绘
}

//窗体Paint事件
private: System::Void WM_OnPaint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e)
{
Graphics ^line = e->Graphics;
//这里的问号是我想传递的刚才动态生成的pictureBox的坐标.请问该怎么做?
line->DrawLine( Pens::White, 0, 0, ?, ? );
}







还有就是为什么动态控件的某一事件如果与窗体事件相同(比如都有Paint事件)该怎么处理,使他们不冲突?
例子如下:


窗体的MouseDoubleClick事件处理函数
private: System::Void WM_OnMouseDoubleClick(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e)
{
treeNode->MouseDoubleClick += gcnew
System::Windows::Forms::MouseEventHandler(this,&Form1::Paint);
}

中加入PictrueBox ^treeNode的MouseDoubleClick事件申明,却与Form1 的事件申明发生冲突。
怎么解决?
...全文
228 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
realdzik 2007-01-06
  • 打赏
  • 举报
回复
这里的问号是我想传递的刚才动态生成的pictureBox的坐标.请问该怎么做?
具体代码我没看,直接贴代码的看起来很痛苦
坐标要在弄一个private:xxxx当坐标更改的事件发生时 刷新一下就行了,或者定时刷新 用Timer

至于控件中的属性在构造函数里初始化应该就不会冲突了,我具体没试验,应该是这样子的
希望对你有帮助。

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧