C++Builder  |  Delphi  |  Kylix  |  Turbo-C  |  .NET  |  JBuilder  |  Together  |  FireBird
C++Builder Programming Forum º¼·£µåÆ÷·³ BorlandForum
 °æ°í! °Ô½Ã¹° ÀÛ¼ºÀÚÀÇ »çÀü Çã¶ô¾ø´Â ¸ÞÀÏÁÖ¼Ò ÃßÃâÇàÀ§ Àý´ë ±ÝÁö
C++ºô´õ Æ÷·³
Q & A
FAQ
ÆÁ&Æ®¸¯
°­ÁÂ/¹®¼­
ÀÚ·á½Ç
ÄÄÆ÷³ÍÆ®/¶óÀ̺귯¸®
¸Þ½ÅÀú ÇÁ·ÎÁ§Æ®
º¼·£µåÆ÷·³ Ȩ
Çìµå¶óÀÎ ´º½º
IT ´º½º
°øÁö»çÇ×
ÀÚÀ¯°Ô½ÃÆÇ
ÇØÇÇ ºê·¹ÀÌÅ©
°øµ¿ ÇÁ·ÎÁ§Æ®
±¸ÀÎ/±¸Á÷
ȸ¿ø ÀåÅÍ
°ÇÀÇ»çÇ×
¿î¿µÁø °Ô½ÃÆÇ
ȸ¿ø ¸Þ´º
ºÏ¸¶Å©
º¼·£µåÆ÷·³ ±¤°í ¸ðÁý

C++ºô´õ ÀÚ·á½Ç
C++Builder Programming Resources
[516] WM_COPYDATA¸¦ »ç¿ëÇÑ C++ºô´õ¿¡¼­ µÎ°³ÀÇ application °£ ¸Þ½ÃÁö ±³È¯ ¹æ¹ý
ºñº£½Ã·¯ [] 1271 ÀÐÀ½    2010-01-28 23:17
C++ºô´õ¿¡¼­ µÎ°³ÀÇ application °£ ¸Þ½ÃÁö ±³È¯ ¹æ¹ý¿¡ ´ëÇÑ ³»¿ëÀÔ´Ï´Ù.
WM_COPYDATA¸¦ »ç¿ëÇÏ¿´½À´Ï´Ù.
ºñÁÖ¾óC++¿¡´Â ¸¹Àº ÀÚ·á°¡ Àִµ¥, ã¾Æº¸´Ï ¾ø´Â°Í °°¾Æ
¹ÚÁöÈÆ´ÔÀÇ µµ¿òÀ» ¹Þ¾Æ ÀÛ¼ºÇÏ¿´½À´Ï´Ù.
µµ¿òÀ» ¹ÞÀº °ÍÀÌ´Ï ¾Æ³¦¾øÀÌ °ø°³ÇÕ´Ï´Ù.

Á¦°¡ ³»°øÀÌ ¸¹Áö ¾Ê¾Æ ¼³¸íÀ̳ª ÁÖ¼®µî ³»¿ë¿¡ ¿À·ù°¡ ÀÖÀ» ¼ö Àִµ¥,
¸¹ÀÌ ¾Æ½Ã´Â ºÐµéÀÌ ´ñ±Û·Î ¼öÁ¤ÇØÁÖ½Ã¸é ¿µ±¤À̰ڳ׿ä.

¾ÕÀ¸·Î´Â ¾¾ºô´õµµ ¸¹Àº ÀÚ·áµéÀÌ ³ÑÃijª±æ ¹Ù¶ø´Ï´Ù.

¾²¸é¾µ¼ö·Ï ÁÁÀº ÅøÀÎ°Í °°Àºµ¥.....½Ç·ÂÀÌ ¾ø¾î Âü ¾Æ½¬¿òÀÌ ¸¹½À´Ï´Ù.

¼Û½ÅºÎ

1.  Åë½ÅÀ¸·Î ÁÖ°í ¹ÞÀ» ÀÚ·á Çü ¼±¾ð

mJigNum     : Áö±× ¹øÈ£ Index
mData     : ¿¹ºñ
sData        : Àü´Þ ÇØÁÙ String µ¥ÀÌÅÍ

typedef struct DataInfo{
  int mJigNum;
  int mData;
  char sData[100];
}DINFO, *PINFO;


2. ¼Û½Å ÇÒ ºÎºÐ¿¡¼­ Çϱâ¿Í °°ÀÌ Ã³¸®ÇÑ´Ù.
  DINFO myInfo;
  //------------------
  // ¼Û½Å µ¥ÀÌÅÍ ÀÔ·Â
  //------------------
  myInfo.mJigNum =1;
  myInfo.mData =0;
  strcpy(myInfo.sData,"TEST PROGRAM");

  // WM_COPYDATA ¸Þ½ÃÁö¸¦ ÀÌ¿ëÇϱâ À§Çؼ­´Â
  // COPYDATASTRUCT¿¡ °ªÀ» ½Ç¾î¼­ º¸³»°í ¹Þ´Â´Ù.
  COPYDATASTRUCT copyData;
  copyData.dwData = 333;    // ÀÓÀÇÀÇ IndexÀÓ
  copyData.cbData = sizeof(myInfo);
  copyData.lpData = &myInfo;

  // ¼ö½Å À©µµ¿ì ÇÚµé ã±â
  HWND  hTarWnd = FindWindow(NULL, TEXT("Server") );

  // hTarWnd : º¸³¾ À©µµ¿ì ÇÚµé
  // Handle   : ³» ÇÁ·Î±×·¥ ÇÚµé
  SendMessage( hTarWnd, WM_COPYDATA, (WPARAM)Handle, (LPARAM) ©Data);


3. TargetÀÇ À©µµ¿ì ÇÚµéÀ» ¾ò±â À§ÇØ ÇØ´ç ÇÁ·Î±×·¥ÀÇ caption Á¤º¸¸¦ ¾Ë¾Æ¾ß ÇÑ´Ù.
4. SendMessageÈÄ Target¿¡¼­ ¸Þ½ÃÁö¸¦ ¹Þ¾Ò´ÂÁö È®ÀÎ ÇÏ´Â ¹æ¹ý ?

dwData´Â ÀÓÀÇÀÇ °ªÀ¸·Î »ç¿ëÇϰí, lpDataÇüÀº Àü¼ÛµÉ µ¥ÀÌÅ͸¦ »ç¿ëÀÚ ÀÚ·áÇü¿¡ ³Ö°í, À̸¦ lpData¿¡ ¾îµå·¹½º¸¦ ½Ç¾î¼­ SendMessage·Î º¸³½´Ù. cbData´Â »ç¿ëÀÚ ÀÚ·áÇüÀÇ Å©±â¸¦ ³Ö¾î ÁØ´Ù.

typedef struct DataInfo{
  int mJigNum;
  int mData;
  char sData[100];
}DINFO, *PINFO;


myInfo.mJigNum =1;
  myInfo.mData =0;
  strcpy(myInfo.sData,"TEST PROGRAM");


COPYDATASTRUCT copyData;
  copyData.dwData = 333;
  copyData.cbData = sizeof(myInfo);
  copyData.lpData = &myInfo;

 
  // ¼ö½Å À©µµ¿ì ÇÚµé ã±â
  HWND  hTarWnd = FindWindow(NULL, TEXT("Server") )
   
   
//¸Þ½ÃÁö Àü¼Û
SendMessage( hTarWnd, WM_COPYDATA, (WPARAM)Handle, (LPARAM) ©Data);




¼ö½ÅºÎ

1.  Åë½ÅÀ¸·Î ÁÖ°í ¹ÞÀ» ÀÚ·á Çü ¼±¾ð

typedef struct DataInfo{
  int mJigNum;
  int mData;
  char sData[100];
}DINFO, *PINFO;


2. Ŭ·¡½º ¼±¾ðºÎ¿¡ À©µµ¿ì ¸Þ½ÃÁö ¸Ê ¼±¾ð
   ºñÁÖ¾ó C++ÀÇ °æ¿ì Class Wizard¸¦ ÀÌ¿ëÇϰí, BCBÀÇ °æ¿ì Äڵ巹º§¿¡¼­ ÀÔ·ÂÇØÁØ´Ù.

BEGIN_MESSAGE_MAP
   // WM_COPYDATA¿¡ ´ëÇÑ ¸Þ½ÃÁö ¸Ê ÀÛ¼º
   // TMessage¸¦ »ç¿ëÇÑ´Ù.
   VCL_MESSAGE_HANDLER(WM_COPYDATA, TMessage, GetCopyData );
END_MESSAGE_MAP(TForm);


3. ÇØ´ç ó¸® ÇÔ¼ö ¼±¾ð


  void __fastcall GetCopyData(TMessage &Msg);



4. ¸Þ½ÃÁö ó¸® ÇÔ¼ö¿¡¼­ ó¸®


void __fastcall TForm1::GetCopyData(TMessage &Msg)
{
  Print("Message Received");

  // copyÇÒ µ¥ÀÌÅÍ ±¸Á¶Ã¼
  DINFO myInfo;

  // ¸Þ½ÃÁö ¼Û¼ö½Å ±¸Á¶Ã¼
  COPYDATASTRUCT *pCopyData;

  // MsgÀÇ ÀÎÀÚÁß LParamÀÌ ¼ö½Å Á¤º¸À̹ǷÎ, À̰ÍÀ» °¡¸£Å²´Ù.
  // WM_COPYDATA¸¦ »ç¿ëÇϹǷÎ, COPYDATASTRUCTURE°¡ À̰ÍÀ» °¡¸£Å°°Ô ÇÑ´Ù.

  pCopyData = (COPYDATASTRUCT*) Msg.LParam;   // LParam(copydata)¸¦ °¡¸£Å²´Ù.

  //  COPYDATASTRUCTÀÇ 3°³ ¸â¹ö º¯¼ö·Î access

  int dwdata = pCopyData->dwData;
  Print( "dwdata DATA = ", dwdata );

  int cbdata = pCopyData->cbData;
  Print( "CB DATA = ", cbdata );

  //  COPYDATASTRUCTÀÇ 3°³ ¸â¹ö º¯¼ö Áß
  // lpdata°¡ string°ªÀ» ÀúÀåÇßÀ¸¹Ç·Î, À̰ÍÀ» °¡¸£Å²´Ù.
  // ±¸Á¶Ã¼·Î ¸¸µé¾ú±â ¶§¹®¿¡ (¼ø¼­´ë·Î ²¨³»¿À±â À§Çؼ­)

  PINFO cpInfo = (PINFO)pCopyData->lpData;
  int JigNum = cpInfo->mJigNum;
  Print( "JIG NUM= ", JigNum );
  int mData = cpInfo->mData;
  Print( "mData NUM= ", mData );
  AnsiString  sData = cpInfo->sData;
  Print( "sData = " + sData );
}



¸Þ½ÃÁö ó¸®ÇÔ¼ö´Â ÀÎÀÚ·Î TMessageÇüÀ» ¹ÞÀ¸¸ç, Á¤ÀÇ´Â Çϱâ¿Í °°´Ù. µ¥ÀÌÅ͸¦ ´ã¾Æ¼­ º¸³»´Â ÆÄ¶ó¹ÌÅÍ´Â LParamÀ̸ç, WM_COPYDATA ¸Þ½ÃÁö¸¦ »ç¿ëÇÒ °æ¿ì¿¡´Â COPYDATASTRUCT ±¸Á¶Ã¼¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.

struct TMessage
{
    Cardinal Msg;
    union
    {
        struct
        {
            Word WParamLo;
            Word WParamHi;
            Word LParamLo;
            Word LParamHi;
            Word ResultLo;
            Word ResultHi;
           
        };
        struct
        {
            int WParam;
            int LParam;
            int Result;
        };
       
    };
      } ;



typedef struct tagCOPYDATASTRUCT {  // cds 
    DWORD dwData;
    DWORD cbData;
    PVOID lpData;
} COPYDATASTRUCT;

dwData
Specifies up to 32 bits of data to be passed to the receiving application.
cbData
Specifies the size, in bytes, of the data pointed to by the lpData member.
lpData
Points to data to be passed to the receiving application. This member can be NULL.


¸Þ½ÃÁö ó¸® ÇÔ¼öÀÇ ÀÎÀÚÀÎ MsgÀÇ Msg.LParamÀ» COPYDATASTRUCTURE°¡ °¡¸£Å°µµ·Ï Çϰí


pCopyData = (COPYDATASTRUCT*) Msg.LParam;   // LParam(copydata)¸¦ °¡¸£Å²´Ù.



COPYDATASTRUCTURE ±¸Á¶Ã¼ÀÇ ¸â¹ö º¯¼ö´Â ÇϱâÀÇ ¹æ¹ýÀ¸·Î Access ÇÑ´Ù.

  int dwdata = pCopyData->dwData;
  Print( "dwdata DATA = ", dwdata );

  int cbdata = pCopyData->cbData;
  Print( "CB DATA = ", cbdata );

  //  COPYDATASTRUCTÀÇ 3°³ ¸â¹ö º¯¼ö Áß
  // lpdata°¡ string°ªÀ» ÀúÀåÇßÀ¸¹Ç·Î, À̰ÍÀ» °¡¸£Å²´Ù.
  // ±¸Á¶Ã¼·Î ¸¸µé¾ú±â ¶§¹®¿¡ (¼ø¼­´ë·Î ²¨³»¿À±â À§Çؼ­)


»ç¿ëÀÚ Á¤ÀÇ ¸Þ½ÃÁö¸¦ ¾ò±â À§Çؼ­ ÇϱâÀÇ ¹æ¹ýÀ» ÀÌ¿ëÇÑ´Ù.
COPYDATASTRUCT Æ÷ÀÎÅÍ º¯¼ö¸¦ ÀÌ¿ëÇØ »ç¿ëÀÚ Á¤ÀÇ ¸Þ½ÃÁö ±¸Á¶Ã¼·Î Á¢±ÙÇÑ´Ù.


PINFO cpInfo = (PINFO)pCopyData->lpData;


  PINFO cpInfo = (PINFO)pCopyData->lpData;
  int JigNum = cpInfo->mJigNum;
  Print( "JIG NUM= ", JigNum );
  int mData = cpInfo->mData;
  Print( "mData NUM= ", mData );
  AnsiString  sData = cpInfo->sData;
  Print( "sData = " + sData );

<<ÀÀ¿ë ÇÁ·Î±×·¥ ¿¹>>

¼Û½ÅºÎ
¼ö½ÅºÎ
¹Ú¿µ¸ñ.¿ùõ [gsbsoft]   2010-02-28 20:24 X
°£´ÜÈ÷ »ç¿ëÇÒ ¶§ À¯¿ëÇÏÁö¿ä. Àúµµ ÇöÀç ÀÌ ºÎºÐ Çϰí ÀÖ½À´Ï´Ù.
ÇÊ¿äÇØ¼­...  À¥Çϵå ÇÒ ¶§µµ Çѹø »ç¿ëÇß´Â µ¥...

SendMessage ÀÌ ³ðÀº Àú´Â Àß »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù. ÀÀ´ä ¿Ã ¶§±îÁö...

±â´Ù¸®Áö¿ä... ±×·¡¼­ ´ëºÎºÐÀº  PostMessage¸¦ »ç¿ëÇÏÁö¿ä.

±×·±µ¥ WM_COPYDATA´Â SendMessage ¾Æ´Ï¸é ¾ÈµÇÁö¿ä.

±×·±µ¥ ¹®Á¦´Â À©µµ¿ì ÇÚµéÀº ÀÖ´Â µ¥ ¸¸¾à Ȥ ¼ö½Å ÇÁ·Î±×·¥ÀÌ... ¹«ÇÑ·çÇÁ³ª

ÀÀ´äÇÒ ¼ö ¾ø´Â »óÅ·ΠµÇ¾î ÀÖ´Ù¸é º¸³»´Â ÇÁ·Î±×·¥µµ ¸ØÃß¾î ¹ö¸®´Â

Çö»óÀÌ ÀϾÁö¿ä.

±×·¡¼­ ÀÏÁ¤ ½Ã°£ °æ°ú ÈÄ ºüÁ® ³ª¿À´Â ³ðÀ¸·Î...

LRESULT SendMessageTimeout( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, UINT fuFlags, UINT uTimeout, PDWORD_PTR lpdwResult );


¼ö½ÅÂʵµ ±×·² °æ¿ì´Â µå¹°Áö¸¸...

°ª¸¸ ¼ö½Å ¹Þ°í ¹Ù·Î  BOOL ReplyMessage(LRESULT lResult); À» »ç¿ëÇØ¼­

¼Û½ÅÂÊ¿¡ Àß ¹Þ¾Ò´Ù´Â ¸®ÅϰªÀ» º¸³À´Ï´Ù. ±×·¯¸é ¼Û½ÅÂÊÀº ¹Ù·Î ´ÙÀ½ ÀÏÀ» ó¸®ÇÒ ¼ö

ÀÖ°ÚÁö¿ä...  PostMessage¸¦ »ç¿ëÇÒ ¼ö ¾øÀ¸´Ï... ÃÖ´ëÇÑ PosticÇÏ°Ô »ç¿ëÇÕ´Ï´Ù.

Á¦°¡ WM_COPYDTA¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀ̾ú½À´Ï´Ù ^^
Å©·¹ºê [kkol]   2010-03-20 08:48 X
ÁÁÀº ³»¿ëÀ̱º¿ä.. ¹Ú ¿µ¸ñ.¿ùõ´Ôµµ Àß ÁöÀûÇØ Áּ̰í¿ä.
ÀúÈñȸ»ç¿¡¼­ WM_COPYDATA¸¦ Àß »ç¿ëÇϰí ÀÖ½À´Ï´Ù.

¾Ë°í º¸¸é °ÅÀÇ ´ëºÎºÐ ¸¹ÀÌ »ç¿ëÇϰí ÀÖ´Â ±â´ÉÀε¥µµ ºÒ±¸Çϰí

Ãʺ¸ÀÚ ºÐµéÀº ¸ð¸£±â ¶§¹®¿¡ ¸ø¾²´Â °æ¿ìµµ ÀÖÀ»°Í °°±º¿ä
±×·± ºÐµé¿¡°Ô ¸¹Àº µµ¿òÀÌ µÉ°Í ÀÔ´Ï´Ù. ^^

+ -
ÀÌÀü±Û:  ¿Àµð¿À ¶óÀ̺귯¸® BASS 2.4.5
´ÙÀ½±Û:  RAD2009 ¾÷µ¥ÀÌÆ®4¿ë Welcomepage ÇÑ±ÛÆÇBeta(¹ø¿ªÀ² 70%Á¤µµ...)

°ü·Ã ±Û ¸®½ºÆ®
516 WM_COPYDATA¸¦ »ç¿ëÇÑ C++ºô´õ¿¡¼­ µÎ°³ÀÇ application °£ ¸Þ½ÃÁö ±³È¯ ¹æ¹ý ºñº£½Ã·¯ 1271 2010-01-28
Google
Copyright © 2008, borlandforum.com. All right reserved.