フォーム内のピクチャボックスにWndProc Funectionを使用するには? 私はこのコードのようにそれを試してみたが、それはすべてのメッセージが私の 公衆への送信動作していないではない:仮想無効にWndProc(メッセージ%M)WndProcの使い方
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
namespace MyProject {
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void) {
InitializeComponent();
//TODO: Add the constructor code here
}
protected:
~Form1() {
if (components)
delete components;
}
private:
System::Windows::Forms::PictureBox^ pictureBox1;
System::ComponentModel::Container ^components;
void InitializeComponent(void) {
this->pictureBox1 = gcnew System::Windows::Forms::PictureBox();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(
this->pictureBox1))->BeginInit();
this->SuspendLayout();
//
// pictureBox1
//
this->pictureBox1->Location = System::Drawing::Point(41, 27);
this->pictureBox1->Name = L"pictureBox1";
this->pictureBox1->Size = System::Drawing::Size(206, 203);
this->pictureBox1->TabIndex = 0;
this->pictureBox1->TabStop = false;
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(292, 265);
this->Controls->Add(this->pictureBox1);
this->Name = L"Form1";
this->Text = L"Form1";
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(
this->pictureBox1))->EndInit();
this->ResumeLayout(false);
}
};
ref class pictureBox1 : PictureBox {
public:
virtual void WndProc(Message% m) override {
__super::WndProc(m);
}
};
}//close NameSpace
ウィンドウプロシージャが実行されます 'BackColor'各時間を設定する理由は絶対にありません。コンストラクタでそれを設定し、最初に 'WndProc'をオーバーライドすることなく使用することができます。 –
@Cody:私の答えに彼のコメントを見てください。彼はDirectXを使用しています。 – SLaks
あなたのクラスとフィールドに名前を付ける必要があります。 – SLaks