타이틀바가 없을 경우 다른 부분을 드래그해도 다이얼로그를 이동하고자 할경우 두가지 방법

1.WM_LBUTTON 의 처리
void CXXDLG::OnLButtonDown(UINT nFlags, CPoint point)
{
 // TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
 CPoint pt = point;
 ClientToScreen(&pt);
 PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(pt.x,pt.y));
 CDialog::OnLButtonDown(nFlags, point);
}
마우스 버틀을 클릭했을때 타이틀바를 클릭한 메시지를 날려 준다.

2. WM_NCHITTEST 메시지 처리

UINT CXXDLG::OnNcHitTest(CPoint point) 
{
  return HTCAPTION;
}
Posted by 스템프

Visual studio 2005 오류 응용 프로그램 구성이 올바르지 않기 때문에 오류가 난다고 합니다.

2005로 배포한 파일이 실행 되다 안되다...
알고보니.. 비쥬얼 스튜디오 프레임 오류라네요....

첨부파일 설치하면 해결됩니다.

감사합니다.
Posted by 스템프

1. 리소스 뷰에서 최상위 (프레젝트.rc 폴더) 에서 오른쪽 버튼을 눌러서 MFC Mode 를 끈다. 

2. 바꾸고자 하는 다이얼로그를 선택하고 속성을 선택해서 Class Name 에 바꾸고자 하는 이름을 적는다. 

3. 다시 MFC Mode 를 True 로 바꾼다. 

4. 프로젝트App::InitInstance() 함수를 찾아서 다음 코드를 추가한다.

WNDCLASS wc;
 GetClassInfo(AfxGetInstanceHandle(), TEXT("#32770"), &wc);
    // 바꾸고자 하는 클래스명
    wc.lpszClassName = TEXT("MyClassName");
    // Register this class so that MFC can use it.
    AfxRegisterClass(&wc);

 

Posted by 스템프

2010. 3. 17. 21:12 program

Flash <-> MFC 통신


1. 플래쉬 -> 윈도우프로그램
    fscommand( "...", true ); 커멘드 호출


2. 윈도우프로그램 -> 플래쉬
 m_flash.CallFunction( "<invoke name='external_func'><arguments><string>arg</string></arguments></invoke>" );

 

2번을 하실때는 플래쉬 액션에
flash.external.ExternalInterface.addCallback( "external_func", this, flash_func );
function flash_func(v:Number)

{

...
}

Posted by 스템프

typedef BOOL (WINAPI *CHANGEWINDOWMESSAGEFILTER)(
UINT message,
DWORD dwFlag
);

선언하시구요 

 HANDLE popapi;
 CHANGEWINDOWMESSAGEFILTER ChangeWindowMessageFilter;

 popapi = LoadLibrary("USER32.DLL");

 ChangeWindowMessageFilter = (CHANGEWINDOWMESSAGEFILTER)GetProcAddress((HINSTANCE)popapi,
  "ChangeWindowMessageFilter");
 ChangeWindowMessageFilter(WM_COPYDATA, 1);

 초기화 init 부분에 넣으시면 끝 

Posted by 스템프
이전버튼 1 이전버튼

블로그 이미지
it 전반적인 것들의 리뷰 작성 및 도움말 블로그 입니다. 유틸,광고,스마트폰에 초점을 맞출예정입니다.
스템프

공지사항

Yesterday
Today
Total