본문 바로가기

쓰기

밖에서

모달리스 다이얼로그 안으로
데이터를 넣어주는 간단한 방법 없나요 =ㅅ=;


저 방법이 생각안나서 지금 해보려고 하는게,
실시간으로 바깥의
isTextFilled 를 체크해서
true인 경우만 밖의 텍스트를 가져온 다음에 isTextFilled를 false로 만드는 방법밖에
생각이 안나거든요 =ㅅ=;
분류 :
Talk
조회 수 :
7892
등록일 :
2008.08.02
03:22:30
엮인글 :
https://arallab.hided.net/3529/834/trackback
게시글 주소 :
https://arallab.hided.net/board_devtalk/3529

whoami

2008.08.02
11:35:06
1. 쉽지만 더티한 방법;

HWND g_hwndModaless; // 모달리스 대화상자 윈도우 핸들 (전역변수)

BOOL OnPluginInit(...)
{
 ...
 g_hwndModaless = CreateWindowEx(...); // 모달리스 대화상자를 만듦
 ...
}

void SetMyText(LPCTSTR szText)
{
  SetDlgItemText(g_hwndModaless, IDC_LOGWINDOW, szText); // 혹은 다른 텍스트 세팅 함수
}

장점 - 초간단.
단점 - 직접 다른 윈도우의 자식 윈도우에 접근하는 것은 별로 권장사항이 아님

2. 정석대로의 방법
#define WM_SETMYTEXT WM_USER  // 사용자 메세지를 하나 세트

... OnPluginInit 부분은 대충 비슷 ...

void SetMyText(LPCTSTR szText)
{
  SendMessage(g_hwndModaless, WM_SETMYTEXT, 0, (LPARAM) szText);
}

// 다이얼로그 프로시져
BOOL CALLBACK DialogProc(...)
{
  switch(uMsg)
  {
    //... 중략 ...//
     case WM_SETMYTEXT:
        SetDlgItemText(hwndDlg, IDC_LOGWINDOW, (LPCTSTR)lParam); // 혹은 다른 텍스트 세팅 함수
        return TRUE;
  //... 후략...//
  }
}

장점 - 정석대로의 방법.
단점 - 일일이 SendMessage 로 보내주기 귀찮다는.. ;;

3. 다른 프로세스로 데이타를 넘겨줄때

.. WM_COPYDATA 를 참조;

Hide_D

2008.08.02
12:04:10
아!
그렇군요. 감사합니다
List of Articles
공지 Talk [필독] 테스트필터 사용시 주의사항
라파에
155437   2008-08-03 2008-12-16 00:03