在鼠标悬停时更改图片框,并在mouseleave上重置

时间:2013-04-04 05:37:51

标签: c++ .net winforms image visual-c++

我正在开发一个Windows窗体程序,并且很难在C ++中找到如何执行此操作。 MSDN有这个页面http://msdn.microsoft.com/en-us/library/system.windows.forms.picturebox.image,但与VB相比缺少C ++文档。

这是我到目前为止所拥有的。这种方法应该避免常见的闪烁问题,但我不知道从哪里开始,因为我需要它在鼠标离开后返回到原始图像。

void InitializeComponent(void)
    {   
this->btnExit->BackColor = System::Drawing::Color::Transparent;
        this->btnExit->BackgroundImageLayout = System::Windows::Forms::ImageLayout::None;
        this->btnExit->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"btnExit.Image")));
        this->btnExit->Location = System::Drawing::Point(764, 4);
        this->btnExit->Name = L"btnExit";
        this->btnExit->Size = System::Drawing::Size(30, 20);
        this->btnExit->TabIndex = 3;
        this->btnExit->TabStop = false;
        this->btnExit->Click += gcnew System::EventHandler(this, &mainForm::btnExit_Click);
}

#pragma endregion
private: System::Void btnExit_OnMouseEnter(System::Object^  sender, System::EventArgs^  e) {
            Image^ get ();
            void set (Image^ value);
         }

感谢。

1 个答案:

答案 0 :(得分:0)

private: System::Void btnExit_MouseEnter(System::Object^  sender, System::EventArgs^  e) {
         btnExit->Image = Image::FromFile("C:\\Users\\...\\image.png");
 }

工作,不确定这是否是正确的方法。