Vc++ 2010 Как Программно Вызвать Процедуру Paint?

Тема в разделе "MS Visual C++", создана пользователем Seva, 14 апр 2012.

  1. Seva

    Seva Гость

    На форме стоит pictureBox... Добавляю процедуру клика- pictureBox_Click. Теперь по этому клику надо вызвать pictureBox_Paint и нарисовать, например, круг.
    Если я pictureBox_Paint прописываю в pictureBox_Click

    Код (Text):
    #pragma endregion
    private: System::Void pictureBox1_Click(System::Object^ sender, System::EventArgs^ e) {
    private: System::Void pictureBox1_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) {
    e->Graphics->DrawEllipse(Pens::Red, 10, 10, 20, 20);
    }
    ...То, естественно, не компилируется:

    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Показать ошибки</div></div><div class="sp-body"><div class="sp-content">1>------ Build started: Project: Клик, Configuration: Debug Win32 ------
    1>Build started 14.04.2012 12:06:41.
    1>InitializeBuildStatus:
    1> Creating "Debug\Клик.unsuccessfulbuild" because "AlwaysCreate" was specified.
    1>GenerateTargetFrameworkMonikerAttribute:
    1>Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files.
    1>ClCompile:
    1> All outputs are up-to-date.
    1> Клик.cpp
    1>c:\users\station system\documents\visual studio 2010\projects\клик\клик\Form1.h(65): error C2039: 'pictureBox1_Paint' : is not a member of 'Клик::Form1'
    1> c:\users\station system\documents\visual studio 2010\projects\клик\клик\Form1.h(15) : see declaration of 'Клик::Form1'
    1>c:\users\station system\documents\visual studio 2010\projects\клик\клик\Form1.h(65): error C2065: 'pictureBox1_Paint' : undeclared identifier
    1>c:\users\station system\documents\visual studio 2010\projects\клик\клик\Form1.h(65): error C3350: 'System::Windows::Forms::paintEventHandler' : a delegate constructor expects 2 argument(s)
    1>c:\users\station system\documents\visual studio 2010\projects\клик\клик\Form1.h(81): error C2143: syntax error : missing ';' before 'private'
    1>c:\users\station system\documents\visual studio 2010\projects\клик\клик\Form1.h(81): error C2143: syntax error : missing ';' before '{'
    1>c:\users\station system\documents\visual studio 2010\projects\клик\клик\Form1.h(82): error C2039: 'Graphics' : is not a member of 'System::EventArgs'
    1> c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.0\mscorlib.dll : see declaration of 'System::EventArgs'
    1>c:\users\station system\documents\visual studio 2010\projects\клик\клик\Form1.h(82): error C2227: left of '->DrawEllipse' must point to class/struct/union/generic type
    1>
    1>Build FAILED.
    1>
    1>Time Elapsed 00:00:00.69
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


    Подскажите- как правильно вызвать Paint из Click'a или куда правильно будет запихнуть этот Paint, Спасибо!
     
  2. Seva

    Seva Гость

    Ладно...Всё, вопрос решён!





    Сделал так:
    Код (Text):
    #pragma endregion
    private: System::Void pictureBox1_Click(System::Object^ sender, System::EventArgs^ e) {
    Graphics^ dc= pictureBox1->CreateGraphics();
    dc->DrawEllipse(Pens::Red, 10, 10, 30, 30);

    }
    Всем спасибо!
     
Загрузка...

Поделиться этой страницей