如何从功能获得标签

时间:2013-04-13 15:37:34

标签: c++ .net windows winforms label

我试着像这样调用Form.It ok and work.I在loop中的另一个函数中使用它。所以我可以更新它。只需调用并关闭:

OutlookAddIn::MyForm p1;
System::String^ str =gcnew System::String(FullName);
p1.label1->Text = "" + str;
p1.ShowDialog();

但我需要更新它,直到循环适用于每个。我找到了一个解决方案 - 它在线程中调用Form:

include <windows.h>
include "Connect.h"
extern int Main();


void  MainThread( )
{
    HANDLE hThread;
    DWORD  ThreadId;
    BOOL   Active;

    hThread = CreateThread(NULL, 0,
                           (LPTHREAD_START_ROUTINE)Main,
                           (void*)&Active, 0, &ThreadId);

    while(Active == TRUE);

    CloseHandle(hThread);
}

主要功能:

#include "MyForm.h"


using namespace OutlookAddIn; 

[STAThreadAttribute]
#define PBM_DELTAPOS            (WM_USER+3)
int Main()
{
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false); 
auto form = gcnew MyForm();
Application::Run(form);
    return 0 ;

}

现在我有了一个可以工作的线程 - 我只是在我需要的地方打电话MyThread();我还在我的循环功能中重新制作:

    OutlookAddIn::MyForm p1;
    System::String^ bstrArray =gcnew System::String(FullName);
    p1.label1->Text = "" + bstrArray;

但现在我遇到了问题 - 每次循环调用时:

OutlookAddIn::MyForm p1;

程序到这里(在MyForm.cpp中):

this->label1->AutoSize = true;
            this->label1->Location = System::Drawing::Point(12, 57);
            this->label1->Name = L"label1";
            this->label1->Size = System::Drawing::Size(59, 13);
            this->label1->TabIndex = 2;
            this->label1->Text = L"Test";

我有Label = Test。

0 个答案:

没有答案