Thread는 계속 반복 하지 않고 , OnInitDialog가 호출 된 후 한번 만 실행되도록 테스트 하였습니다.
ex) CPrinterSetDlg.h
public:
CWinThread* m_pThread;
static UINT ThreadFunction(LPVOID _mothod);
virtual BOOL OnInitDialog();
ex) CPrinterSetDlg.h
/// <summary>
/// AfxBeginThread를 이용하여 Thread를 생성 하고 호출 합니다.
/// </summary>
/// <returns></returns>
BOOL CPrinterSetDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// TODO: 여기에 추가 초기화 작업을 추가합니다.
m_pThread = AfxBeginThread(ThreadFunction, this);
m_pThread->m_bAutoDelete = TRUE;
return TRUE; // return TRUE unless you set the focus to a control
// 예외: OCX 속성 페이지는 FALSE를 반환해야 합니다.
}
/// <summary>
/// Thread로 호출 할 Function을 작성 합니다.
/// </summary>
/// <param name="_mothod"></param>
/// <returns></returns>
UINT CPrinterSetDlg::ThreadFunction(LPVOID _mothod)
{
CPrinterSetDlg* pDlg = (CPrinterSetDlg*)_mothod;
pDlg->m_strStatusText.SetWindowText(L"팝업창 호출이 되었습니다.");
Sleep(1000);
BlackIceDEVMODE* pDevMode = LoadBlackIceDEVMODE(L"Test Driver");
Sleep(1000);
SetPaperSize(9, pDevMode);
pDlg->m_strStatusText.SetWindowTextW(L"SetPaperSize(9, pDevMode);");
Sleep(1000);
EnableFaxOutput(pDevMode);
pDlg->m_strStatusText.SetWindowTextW(L"EnableFaxOutput(pDevMode);");
Sleep(1000);
SaveBlackIceDEVMODE(L"Test Driver", pDevMode);
Sleep(1000);
ReleaseBlackIceDEVMODE(pDevMode);
Sleep(1000);
pDlg->m_strStatusText.SetWindowTextW(L"BlackIceDevMode 설정이 완료 되었습니다.");
Sleep(1000);
return 0;
}
ex) 위에 생성한 Dialog를 호출 합니다.
void CBlackICEDevModeTestDlg::OnBnClickedOk()
{
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
CPrinterSetDlg dlg;
dlg.DoModal();
}
'C++ > MFC' 카테고리의 다른 글
[MFC Console] HwpAutomation을 이용한 Print 진행 예제 입니다. (1) | 2024.10.20 |
---|---|
[MFC] PRINTER_INFO_4를 이용한 프린터 설치 여부 체크 진행 예제 (0) | 2024.06.28 |
[MFC] Windows Service 시작 / 중지 상태 확인 제어 예제 (0) | 2023.06.27 |
RegOpenKeyEx 32bit 응용프로그램에서 64bit Registry 접근 예제 (0) | 2023.06.22 |
[MFC] WAS서버에 POST 파라미터 전송 시에 한글 깨짐으로 인하여 URLEncode 처리 구현 테스트 진행 (0) | 2023.03.02 |