示例#1
0
文件: HEFTest.c 项目: komh/hanedit2
MRESULT mainwmControl( HWND hwnd, MPARAM mp1, MPARAM mp2 )
{
	switch (SHORT1FROMMP(mp1))
	{
	case ID_HEF1:
		switch (SHORT2FROMMP(mp1))
		{
		case HEN_KILLFOCUS:
			break;
		case HEN_SETFOCUS:
			break;
		case HEN_CHANGE:
			WinInvalidateRect(hwnd,NULL,FALSE);
			break;
		default:
			break;
		} // switch Notification
		break;
	case ID_HEF2:
		switch (SHORT2FROMMP(mp1))
		{
		case HEN_CHANGE:
			WinInvalidateRect(hwnd,NULL,FALSE);
			break;
		}
	} // switch Control

	return MRFROMLONG(0L);
}
示例#2
0
文件: HMLEdit.c 项目: komh/hanedit2
MRESULT mainwmSize( HWND hwnd, MPARAM mp1, MPARAM mp2 )
{
//  printf("HMLEdit:: WM_SIZE\n");

    WinSetWindowPos( WinWindowFromID( hwnd, ID_HANMLE ), NULLHANDLE,
            0, (use_statbar?STATBAR_YSIZE:0),
            SHORT1FROMMP(mp2),
            SHORT2FROMMP(mp2)-(use_statbar?STATBAR_YSIZE:0)-(use_toolbar?TOOLBAR_YSIZE:0),
            SWP_SIZE | SWP_MOVE );
    if (use_toolbar)
        WinSetWindowPos( WinWindowFromID( hwnd, ID_TOOLBAR ), NULLHANDLE,
            0, SHORT2FROMMP(mp2)-TOOLBAR_YSIZE, SHORT1FROMMP(mp2) , TOOLBAR_YSIZE,
            SWP_SIZE | SWP_MOVE | SWP_SHOW);
        else
        WinSetWindowPos( WinWindowFromID( hwnd, ID_TOOLBAR ), NULLHANDLE,
            0, SHORT2FROMMP(mp2)-TOOLBAR_YSIZE, SHORT1FROMMP(mp2) , TOOLBAR_YSIZE,
            SWP_SIZE | SWP_MOVE | SWP_HIDE);
    if (use_statbar)
        WinSetWindowPos( WinWindowFromID( hwnd, ID_STATBAR ), NULLHANDLE,
            0, 0, SHORT1FROMMP(mp2), STATBAR_YSIZE,
            SWP_SIZE | SWP_MOVE | SWP_SHOW);
        else
        WinSetWindowPos( WinWindowFromID( hwnd, ID_STATBAR ), NULLHANDLE,
            0, 0, SHORT1FROMMP(mp2), STATBAR_YSIZE,
            SWP_SIZE | SWP_MOVE | SWP_HIDE);
    return MRFROMLONG(0L);
}
static MRESULT EXPENTRY AttribSelectProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
{
   PATTRIBSELECTDATA pWinData = WinQueryWindowPtr(hwnd, QWL_USER);

   switch(msg)
   {
      case WM_CREATE:
         return (MRESULT) CreateWindow(hwnd, (PCREATESTRUCT) mp2);

      case WM_DESTROY:
         DestroyWindow(pWinData);
         break;

      case WM_HELP:
         /* Weiterleiten mit eigener ID */
         mp1 = MPFROMSHORT(WinQueryWindowUShort(hwnd, QWS_ID));
         break;

      case ATTSM_SETATTRIB:
         return (MRESULT) SetAttrib(hwnd, pWinData, (ULONG) mp1, (ULONG) mp2);

      case ATTSM_QUERYATTRIB:
         return (MRESULT) QueryAttrib(pWinData);

      case WM_CONTROL:
         if (SHORT1FROMMP(mp1) == ATTSID_VALUE)
         {
            switch(SHORT2FROMMP(mp1))
            {
               case VN_ENTER:
                  AttribClicked(hwnd, pWinData, SHORT1FROMMP(mp2), SHORT2FROMMP(mp2));
                  break;

               case VN_HELP:
#if 0
                  WinPostMsg(WinQueryWindow(hwnd, QW_OWNER), WM_HELP,
                             MPFROMSHORT(WinQueryWindowUShort(hwnd, QWS_ID)),
                             mp2);
#endif
                  break;
            }
         }
         break;

      case WM_DRAWITEM:
         if (SHORT1FROMMP(mp1) == ATTSID_VALUE)
            return (MRESULT) DrawItem(pWinData, (POWNERITEM) mp2);
         else
            break;

      case WM_QUERYDLGCODE:
         return WinSendMsg(pWinData->hwndValueSet, msg, mp1, mp2);

      default:
         break;
   }
   return WinDefWindowProc(hwnd, msg, mp1, mp2);
}
示例#4
0
 MRESULT EXPENTRY icqChatWindow(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
 {
    switch(msg)
    {
    case WM_CHAR:
       ((ICQMSGDIALOG *) WinQueryWindowPtr(hwnd,0))->idleSeconds = 0;
       return icqFrameWindow(hwnd, msg, mp1, mp2);

    case WM_CREATE:
       icqskin_cfgWindow(hwnd,ICQMSGDIALOG,0);
       break;

    case WMICQ_CREATECHILDS:
       CHKPoint();
       icqskin_setMsgWindowChilds(hwnd,childlist);
       CHKPoint();
       break;

    case WMICQ_LOADSKIN:
       icqFrameWindow(hwnd, msg, mp1, mp2);
       WinSendMsg(hwnd,WMICQ_SKINCHILDS,mp1,mp2);
       break;

    case WM_CONTROL:
       control(hwnd,SHORT1FROMMP(mp1),SHORT2FROMMP(mp1),mp2);
       break;

    case WM_SIZE:
       resize(hwnd,SHORT1FROMMP(mp2),SHORT2FROMMP(mp2));
       return icqFrameWindow(hwnd, msg, mp1, mp2);

    case WM_DESTROY:
       destroy(hwnd);
       return icqFrameWindow(hwnd, msg, mp1, mp2);

    case WM_USER+10:
        WinInvalidateRect(hwnd,NULL,TRUE);
        break;

    case WMICQ_SETMSGCHILD:
        configure(hwnd, (const MSGCHILD *) mp1, SHORT1FROMMP(mp2));
        break;

    case WMICQ_SIZEMSGBOX:
       return (MRESULT) resizeUserInfo(hwnd,SHORT1FROMMP(mp1),SHORT2FROMMP(mp1));

    case WMICQ_SIZEBUTTONS:
       return (MRESULT) sizeButtonBar(hwnd,SHORT1FROMMP(mp1),SHORT2FROMMP(mp1),(const USHORT *) mp2);

    default:
       return icqFrameWindow(hwnd, msg, mp1, mp2);

    }

    return 0;
 }
示例#5
0
文件: os2_loop.cpp 项目: 0xheart0/vlc
int OS2Loop::getMod( MPARAM mp ) const
{
    int mod = EvtInput::kModNone;
    if( SHORT2FROMMP( mp ) & KC_CTRL )
        mod |= EvtInput::kModCtrl;
    if( SHORT2FROMMP( mp ) & KC_SHIFT )
        mod |= EvtInput::kModShift;

    return mod;
}
MRESULT EXPENTRY wpNBFrame( HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2 )
{
    switch( msg )
    {
        case WM_CONTROL:

            if( ControlMsg( hwnd, SHORT1FROMMP( mp1 ), SHORT2FROMMP( mp1 ),
                            mp2 ) )
                return 0;
            else
                break;

        // You need to process the SC_CLOSE WM_SYSCOMMAND message instead of
        // WM_CLOSE when working with frame windows.

        case WM_SYSCOMMAND:
            if( SHORT1FROMMP( mp1 ) == SC_CLOSE )
            {
                WinDestroyWindow( hwnd );

                // Don't let the WM_QUIT message through

                return 0;
            }

            break;

        // The Notebook prevents the Accelerator key processing from working
        // correctly so we must do another kludge. Here we close the window if
        // the user hit the F3 key.
        case WM_TRANSLATEACCEL:
        {
            PQMSG  pQmsg = (PQMSG) mp1;
            USHORT fsFlags = SHORT1FROMMP( pQmsg->mp1 );

            if( !(fsFlags & (KC_CTRL | KC_SHIFT | KC_ALT | KC_CHAR)) &&
                (fsFlags & KC_KEYUP) &&
                (SHORT2FROMMP( pQmsg->mp2 ) == VK_F3) )
            {
                WinDestroyWindow( hwnd );
                return (MRESULT) TRUE;
            }
            else
                return FALSE;
        }

        case WM_DESTROY:
            FreeResources();
            break;
    }

    return pfnwpFrame( hwnd, msg, mp1, mp2 );
}
示例#7
0
/*---------------------------------------------------------------------------
                                FindWndProc
---------------------------------------------------------------------------*/
MRESULT EXPENTRY FindWndProc( HWND wnd, ULONG msg, MPARAM mp1, MPARAM mp2 )
{
 MRESULT  MRes;
 HWND     entryfield;

   switch (msg) {
     case WM_INITDLG:
           PositionDialog( wnd );
           entryfield = WinWindowFromID( wnd, ID_FINDENTRY );
           WinSendMsg( entryfield, EM_SETTEXTLIMIT,
                       MPFROMSHORT( sizeof FindDat.text - 1 ), 0 );
           WinSetDlgItemText( wnd, ID_FINDENTRY, FindDat.text );
           WinSendMsg( entryfield, EM_SETSEL,
                       MPFROM2SHORT( 0, sizeof FindDat.text ), 0 );
           MRes = MRFROMSHORT( FALSE );
           break;
     case WM_CHAR:
        if (SHORT2FROMMP( mp2 ) == VK_NEWLINE) {
           WinQueryDlgItemText( wnd,
                                ID_FINDENTRY,
                                sizeof FindDat.text - 1,
                                FindDat.text );
           FindDat.sense = WinQueryButtonCheckstate( wnd, ID_FINDCHECK );
           WinDismissDlg( wnd, 0 );
        }
     default:
        MRes = WinDefDlgProc( wnd, msg, mp1, mp2 );
        break;
   }

  return MRes;
}
示例#8
0
MRESULT EXPENTRY wpCTTrack(HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2)
{
	switch(msg)
	{
		case WM_CHAR:
		{
			SHORT fsflags = SHORT1FROMMP(mp1);
			SHORT usvkey = SHORT2FROMMP(mp2);
			if(fsflags & KC_KEYUP) break;

			if((fsflags & KC_SHIFT) && (usvkey == VK_F10))
			{
				RECORDCORE *record;
				record = searchRecords(hwnd, 0, (RECORDCORE *) CMA_FIRST, CRA_SELECTED);

				processPopUp(WinQueryWindow(hwnd, QW_PARENT), WinQueryWindowUShort(hwnd,QWS_ID),
					record, PUM_CDRECORD, PUM_CDCONTAINER, &sourceEmphasisInfo);

				WinSendMsg(sourceEmphasisInfo.PUMHwnd, MM_SETITEMATTR,
					MPFROM2SHORT(IDM_MINIICONS, FALSE),
					MPFROM2SHORT(MIA_CHECKED, miniIcons ? MIA_CHECKED : 0));
				return 0;
			}

			else if((fsflags & KC_SHIFT) && (usvkey == VK_F9))
			{
				CNREDITDATA editdata;
				CNRINFO cnrInfo;

				WinSendMsg(hwnd,CM_QUERYCNRINFO, MPFROMP(&cnrInfo),MPFROMLONG(sizeof(cnrInfo)));

				editdata.cb = sizeof(editdata);
				editdata.hwndCnr = hwnd;
				editdata.pRecord = searchRecords(hwnd, 0, (RECORDCORE *) CMA_FIRST, CRA_CURSORED);
				editdata.ppszText = NULL;
				editdata.cbText = 0;

				if(cnrInfo.flWindowAttr & CV_DETAIL)
				{
					editdata.pFieldInfo = (FIELDINFO*) WinSendMsg(hwnd, CM_QUERYDETAILFIELDINFO, MPFROMP(NULL), MPFROMSHORT(CMA_FIRST));
					editdata.pFieldInfo = (FIELDINFO*) WinSendMsg(hwnd, CM_QUERYDETAILFIELDINFO, MPFROMP(editdata.pFieldInfo), MPFROMSHORT(CMA_NEXT));
					editdata.id = CID_LEFTDVWND;
				}
				else
				{
					editdata.pFieldInfo = NULL;
					editdata.id = WinQueryWindowUShort(hwnd,QWS_ID);
				}

				WinSendMsg(hwnd,CM_OPENEDIT,MPFROMP(&editdata),0);

				return 0;
			}

			break;
		}
	}

	return wpCT( hwnd, msg, mp1, mp2 );
}
BOOL
WgtControl( PXCENTERWIDGET pWidget, MPARAM mp1, MPARAM mp2 )
{
  BOOL   brc = FALSE;
  USHORT usID = SHORT1FROMMP(mp1),
         usNotifyCode = SHORT2FROMMP(mp1);

  // is this from the XCenter client?
  if( usID == ID_XCENTER_CLIENT )
  {
    // yes:
    switch( usNotifyCode )
    {
      /*
       * XN_QUERYSIZE:
       *      XCenter wants to know our size.
       */

      case XN_QUERYSIZE:
      {
        PSIZEL pszl = (PSIZEL)mp2;

        pszl->cx = WinQuerySysValue( HWND_DESKTOP, SV_CXICON ) / 2 + 6;
        pszl->cy = WinQuerySysValue( HWND_DESKTOP, SV_CYICON ) / 2 + 6;
        brc = TRUE;
        break;
      }
    }
  }

  return brc;
}
示例#10
0
文件: HMLETest.c 项目: komh/hanedit2
MRESULT mainwmControl( HWND hwnd, MPARAM mp1, MPARAM mp2 )
{
	switch (SHORT1FROMMP(mp1))
	{
	case ID_HMLE:
		switch (SHORT2FROMMP(mp1))
		{
		case HMLN_KILLFOCUS:
			break;
		case HMLN_SETFOCUS:
			break;
		case HMLN_CHANGED:
			WinInvalidateRect(hwnd,NULL,FALSE);
			break;
		case HMLN_OVERFLOW:
			printf("Overflow!\n");
			break;
		default:
			break;
		} // switch Notification
		break;
	} // switch Control

	return MRFROMLONG(0L);
}
示例#11
0
static BOOL DrawItem(PATTRIBSELECTDATA pWinData, POWNERITEM pOwnerItem)
{
   if (pOwnerItem->idItem == VDA_ITEM)
   {
      int iItem;
      ULONG ulMask;

      iItem = (SHORT1FROMMP(pOwnerItem->hItem)-1) * 8+
              (SHORT2FROMMP(pOwnerItem->hItem)-1);
      ulMask = 1UL << iItem;

      if ((pWinData->ulAttrib & ulMask) &&
          (pWinData->ulAttribMask & ulMask))
      {
         /* gesetzt */
         WinDrawText(pOwnerItem->hps, -1, AttribText[iItem],
                     &pOwnerItem->rclItem, CLR_WHITE, CLR_RED,
                     DT_CENTER | DT_VCENTER | DT_ERASERECT);

         return TRUE;
      }
      else
         return FALSE;
   }
   else
      return FALSE;
}
示例#12
0
文件: kimehook.c 项目: komh/kime
USHORT kbdKeyTranslate( PQMSG pQmsg )
{
    USHORT  fsFlags = SHORT1FROMMP( pQmsg->mp1 );
    //UCHAR   ucRepeat = CHAR3FROMMP( pQmsg->mp1 );
    UCHAR   ucScancode = CHAR4FROMMP( pQmsg->mp1 );
    USHORT  usCh = SHORT1FROMMP( pQmsg->mp2 );
    USHORT  usVk = SHORT2FROMMP( pQmsg->mp2 );

    if( ucScancode < 54 )
    {
        BOOL  shiftOn = ( fsFlags & KC_SHIFT ) ? TRUE : FALSE;
        UCHAR uch = kbdKeyTransTable[ ucScancode ][ shiftOn ];

        if( uch != 0 )
        {
            uch = ( shiftOn ^ isCapsLockOn()) ? toupper( uch ) : tolower( uch );

            usCh = MAKEUSHORT( uch, 0 );

            //pQmsg->mp1 = MPFROMSH2CH( fsFlags, ucRepeat, ucScancode );
            pQmsg->mp2 = MPFROM2SHORT( usCh, usVk );
        }
    }

    return usCh;
}
MRESULT MainSize(HWND hwnd,      /* handle to the main client window */
                 SHORT sTotalMsgs,
                 MPARAM mp1,     /* first parameter of WM_SIZE message */
                 MPARAM mp2)     /* second parameter of WM_SIZE message */
{

   cxClient = SHORT1FROMMP (mp2) ;
   cyClient = SHORT2FROMMP (mp2) ;

   sHscrollMax = max (0, cxTextTotal - cxClient) ;
   sHscrollPos = min (sHscrollPos, sHscrollMax) ;

   WinSendMsg (hwndHscroll, SBM_SETSCROLLBAR,
                            MPFROM2SHORT (sHscrollPos, 0),
                            MPFROM2SHORT (0, sHscrollMax)) ;

   WinEnableWindow (hwndHscroll, (BOOL)((sHscrollMax != 0) ? TRUE : FALSE)) ;

   sVscrollMax = max (0, sTotalMsgs - cyClient / cyChar) ;
   sVscrollPos = min (sVscrollPos, sVscrollMax) ;

   WinSendMsg (hwndVscroll, SBM_SETSCROLLBAR,
                            MPFROM2SHORT (sVscrollPos, 0),
                            MPFROM2SHORT (0, sVscrollMax)) ;

   WinEnableWindow (hwndVscroll, (BOOL)((sVscrollMax != 0) ? TRUE : FALSE)) ;

   return (MRFROMLONG(0));
}
extern MRESULT EXPENTRY ComboBox_Processor ( HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2 ) {

   static PWINDOWPROC DefaultProcessor = 0 ;

   switch ( msg ) {

      case WM_CREATE: {
         CLASSINFO ClassInfo ;
         WinQueryClassInfo ( WinQueryAnchorBlock(hwnd), WC_COMBOBOX, &ClassInfo ) ;
         DefaultProcessor = ClassInfo.pfnWindowProc ;
         MRESULT Result = DefaultProcessor ( hwnd, msg, mp1, mp2 ) ;
         HWND Entryfield = WinWindowFromID ( hwnd, CBID_EDIT ) ;
         ULONG Style = WinQueryWindowULong ( hwnd, QWL_STYLE ) ;
         if ( Style & CBS_DROPDOWNLIST ) {
            OldComboEntry_Processor1 = WinSubclassWindow ( Entryfield, ComboEntry_Processor1 ) ;
         } else {
            OldComboEntry_Processor2 = WinSubclassWindow ( Entryfield, ComboEntry_Processor2 ) ;
         } /* endif */
         return ( Result ) ; }

      case WM_CONTROL: {
         USHORT Id = WinQueryWindowUShort ( hwnd, QWS_ID ) ;
         SHORT Control = SHORT1FROMMP ( mp1 ) ;
         SHORT Message = SHORT2FROMMP ( mp1 ) ;
         switch ( Control ) {
            case CBID_EDIT: {
               switch ( Message ) {
                  case EN_SETFOCUS: {
                     Sys_SendMessage( OWNER(hwnd), WM_CONTROL, MPFROM2SHORT(Id,CBN_SETFOCUS), 0 ) ;
                     break; }
                  case EN_KILLFOCUS: {
                     Sys_SendMessage( OWNER(hwnd), WM_CONTROL, MPFROM2SHORT(Id,CBN_KILLFOCUS), 0 ) ;
                     break; }
               } /* endswitch */
               break; }
            case CBID_LIST: {
               switch ( Message ) {
                  case LN_SETFOCUS: {
                     Sys_SendMessage( OWNER(hwnd), WM_CONTROL, MPFROM2SHORT(Id,CBN_SETFOCUS), 0 ) ;
                     break; }
                  case LN_KILLFOCUS: {
                     Sys_SendMessage( OWNER(hwnd), WM_CONTROL, MPFROM2SHORT(Id,CBN_KILLFOCUS), 0 ) ;
                     break; }
               } /* endswitch */
               break; }
         } /* endswitch */
         break; }

      case WM_MEASUREITEM:
         return ( Sys_SendMessage( OWNER(hwnd), msg, mp1, mp2 ) ) ;

      case WM_DRAWITEM: 
         return ( Sys_SendMessage( OWNER(hwnd), msg, mp1, mp2 ) ) ;

   } /* endswitch */

   return ( DefaultProcessor ? DefaultProcessor ( hwnd, msg, mp1, mp2 ) : 0 ) ;
}
示例#15
0
void wxTextEntry::GetSelection(long *from, long *to) const
{
    long dwPos;
    dwPos = (long)::WinSendMsg(GetEditHwnd(), EM_QUERYSEL, 0, 0);

    if ( from )
        *from = SHORT1FROMMP((MPARAM)dwPos);
    if ( to )
        *to = SHORT2FROMMP((MPARAM)dwPos);
}
示例#16
0
/*
** dialog to set read/write timeouts
*/
MRESULT EXPENTRY fnwpHdwTimeoutDlg(HWND hwnd,USHORT msg,MPARAM mp1,MPARAM mp2)
  {
  static DCB stComDCB;
  static bAllowClick;
  static COMCTL *pstComCtl;

  switch (msg)
    {
    case WM_INITDLG:
//      CenterDlgBox(hwnd);
//      WinSetFocus(HWND_DESKTOP,hwnd);
      bAllowClick = FALSE;
      pstComCtl = PVOIDFROMMP(mp2);
      if (GetDCB(pstComCtl->pstIOctl,pstComCtl->hCom,&stComDCB))
        {
        WinDismissDlg(hwnd,FALSE);
        return(FALSE);
        }
      if (pstComCtl->pszPortName != NULL)
        WinSetWindowText(hwnd,pstComCtl->pszPortName);
      WinPostMsg(hwnd,UM_INITLS,(MPARAM)0L,(MPARAM)0L);
      break;
    case UM_INITLS:
      FillHdwTimeoutDlg(hwnd,&stComDCB);
      bAllowClick = TRUE;
      break;
    case WM_CONTROL:
      if (SHORT2FROMMP(mp1) == BN_CLICKED)
        if (bAllowClick)
          if (!TCHdwTimeoutDlg(hwnd,SHORT1FROMMP(mp1)))
            return(FALSE);
      break;
    case WM_COMMAND:
      switch(SHORT1FROMMP(mp1))
        {
        case DID_OK:
          UnloadHdwTimeoutDlg(hwnd,&stComDCB);
          SendDCB(pstComCtl->pstIOctl,pstComCtl->hCom,&stComDCB);
          WinDismissDlg(hwnd,TRUE);
          break;
        case DID_CANCEL:
          WinDismissDlg(hwnd,FALSE);
          break;
        case DID_HELP:
          DisplayHelpPanel(pstComCtl);
          break;
        default:
          return WinDefDlgProc(hwnd,msg,mp1,mp2);
        }
      break;
    default:
      return(WinDefDlgProc(hwnd,msg,mp1,mp2));
    }
  return FALSE;
  }
BOOL ValueSample::OCommand(ULONG msg, MPARAM mp1, MPARAM mp2)
{
 switch(msg)
  {
   case WM_CONTROL:
    switch(SHORT2FROMMP(mp1)) {
     case VN_SELECT:
     case VN_ENTER: {
       OString Notification;
       CHAR    pszTmp[5];

       VSet.querySelected();
       if ((SHORT2FROMMP(mp1)) == VN_SELECT)
         Notification << OString(STR_VN_SELECT, NULLHANDLE);
       else
         Notification << OString(STR_VN_ENTER, NULLHANDLE);
       _itoa(VSet.selected.row, pszTmp, 10);
       Notification + pszTmp;
       Notification + " Column ";
       _itoa(VSet.selected.col, pszTmp, 10);
       Notification + pszTmp;
       WinSetDlgItemText(hwnd, VALUE_STATUS, Notification);
       break; }}
     break;

   case WM_COMMAND:
     WinSendMsg(hwnd, WM_CLOSE, NULL, NULL);
     break;

   case WM_CLOSE:
     hideDlg();
     forceQuit();
     break;

   default:
     return(FALSE);
  }
 return(TRUE);
#ifdef __BCPLUSPLUS__
  #pragma warn -par
#endif
}
示例#18
0
MRESULT SetRightVolume(USHORT DevID, MPARAM mp1, MPARAM mp2)
{
    USHORT NewVolume, VolumeScaled;
    BOOL bResult;

    if ( ( SHORT2FROMMP(mp1) == SLN_CHANGE ||
           SHORT2FROMMP(mp1) == SLN_SLIDERTRACK ) && ! SliderSet ) {
        NewVolume = SHORT1FROMMR(WinSendMsg(hwndVolumeRight, SLM_QUERYSLIDERINFO,
            MPFROM2SHORT(SMA_SLIDERARMPOSITION, SMA_RANGEVALUE), NULL));

        if ( NewVolume != OldVolRight ) {
            VolumeScaled = ScaleValue(NewVolume, VolSliderPixels-1, 100);

            if ( ! VolChannelIndependent ) {
                CurrVolLeft = VolumeScaled;
                CurrVolRight = VolumeScaled;

                OldVolLeft = OldVolRight = NewVolume;
                SliderSet = TRUE;
                WinSendMsg(hwndVolumeLeft, SLM_SETSLIDERINFO,
                    MPFROM2SHORT(SMA_SLIDERARMPOSITION, SMA_RANGEVALUE),
                    MPFROMSHORT(NewVolume));
                SliderSet = FALSE;
                bResult = CDSetVolume(DevID, VolumeScaled, VolumeScaled);
                // CDOptError(bResult, hwnd, ERR_DEVICE_SETVOLUME);
                }
            else {
                CurrVolRight = VolumeScaled;

                OldVolRight = NewVolume;
                bResult = CDSetVolume(DevID, -1, VolumeScaled);
                // CDOptError(bResult, hwnd, ERR_DEVICE_SETVOLUME);
                }

            if ( SaveVolume ) {
                bResult = CDPrfSaveVolume(CurrVolLeft, CurrVolRight);
                }
            }
        }

    return NULL;
}
MRESULT __CPP_EXPORT__ EXPENTRY OWinDefDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
{
 switch(msg)
  {
   case WM_INITDLG:
     if (!mp2) return(MRESULT(TRUE));
     WinSetWindowULong(hwnd, QWL_USER, (ULONG)mp2);
     if (!OApp::OCMDTrace(hwnd, msg, mp1, mp2))
       return(WinDefDlgProc(hwnd, msg, mp1, mp2));
     break;

   case DM_DRAGOVER:
     if (OApp::OCMDTrace(hwnd, msg, mp1, mp2))
       return(MPFROM2SHORT(DOR_DROP, DO_UNKNOWN));
     else
       return(MPFROM2SHORT(DOR_NODROP, DO_UNKNOWN));

   case WM_CONTROL:
     if(SHORT2FROMMP(mp1) == CN_DRAGOVER)
      {
       if (OApp::OCMDTrace(hwnd, msg, mp1, mp2))
         return(MPFROM2SHORT(DOR_DROP, DO_UNKNOWN));
       else
         return(MPFROM2SHORT(DOR_NODROP, DO_UNKNOWN));
      }
     else if (!OApp::OCMDTrace(hwnd, msg, mp1, mp2))
       return(WinDefWindowProc(hwnd, msg, mp1, mp2));
     break;

   case WM_HITTEST:
     if (!OApp::OCMDTrace(hwnd, msg, mp1, mp2))
       return(WinDefWindowProc(hwnd, msg, mp1, mp2));
     else
       return(MPFROMSHORT(HT_NORMAL));

   case WM_DRAWITEM:
     return(MRESULT(OApp::OCMDTrace(hwnd, msg, mp1, mp2)));

   case WM_CLOSE:
   case WM_DESTROY: {
     BOOL dispatched = OApp::OCMDTrace(hwnd, msg, mp1, mp2);
     WinSetWindowULong(hwnd, QWL_USER, (ULONG)OApp::currentOApp->NullHandler());
     if (!dispatched)
       return(WinDefWindowProc(hwnd, msg, mp1, mp2));
     break; }

   default:
     if (!OApp::OCMDTrace(hwnd, msg, mp1, mp2))
       return(WinDefDlgProc(hwnd, msg, mp1, mp2));
     break;
  }
 return(MRESULT(FALSE));
}
示例#20
0
文件: hchlb.c 项目: komh/hanedit2
MRESULT hchlb_umSearchHch( HWND hwnd, MPARAM mp1, MPARAM mp2 )
{
    PHCHLB  hchlb = WinQueryWindowPtr( hwnd, 0 );
    SHORT   cmd = SHORT1FROMMP( mp1 );
    SHORT   index = SHORT2FROMMP( mp1 );
    HANCHAR hch = SHORT1FROMMP( mp2 );

    if( hchlb == NULL )
        return MRFROMLONG( HCHLIT_ERROR);

    return MRFROMLONG( HCHColSearchHch( hchlb->hchCol, cmd, index, hch ));
}
示例#21
0
MRESULT EXPENTRY FileDialogProc( HWND hwndDlg, ULONG msg, MPARAM mp1, MPARAM mp2)
{
  MRESULT mr;
  PFILEDLG pfiledlg;
  HWND hwndTypeCombo;
  INT i;
  SWP swp;
  PMYDATA pmydata;

  switch ( msg ) {
    case WM_INITDLG:
       /* Create another dropdown that we manage */
       mr = WinDefFileDlgProc(hwndDlg, msg, mp1, mp2);
       hwndTypeCombo = WinWindowFromID(hwndDlg, DID_FILTER_CB);
       WinQueryWindowPos(hwndTypeCombo, &swp);
       WinSetWindowPos(hwndTypeCombo, NULLHANDLE, 0, 0, 0, 0, SWP_HIDE);
       hwndTypeCombo = WinCreateWindow( hwndDlg, WC_COMBOBOX, "",
                                        WS_VISIBLE | WS_PARENTCLIP | WS_SYNCPAINT | WS_TABSTOP | CBS_DROPDOWNLIST,
                                        swp.x, swp.y,
                                        swp.cx, swp.cy, hwndDlg, swp.hwndInsertBehind, 290,
                                        NULL, NULL );
       WinSendMsg( hwndTypeCombo, LM_DELETEALL, (MPARAM)0, (MPARAM)0 );
       pfiledlg = (PFILEDLG)WinQueryWindowULong( hwndDlg, QWL_USER );
       pmydata = (PMYDATA)pfiledlg->ulUser;
       i = 0;
       while (*(pfiledlg->papszITypeList[i]) != NULL) {
           WinSendMsg( hwndTypeCombo, LM_INSERTITEM, (MPARAM)LIT_END, (MPARAM)*(pfiledlg->papszITypeList[i]) );
           i++;
       }
       WinSendMsg( hwndTypeCombo, LM_SELECTITEM, (MPARAM)pmydata->ulCurExt, (MPARAM)TRUE );

       return mr;
    case WM_CONTROL:
       {
         if ((SHORT1FROMMP(mp1) == 290) &&
           (SHORT2FROMMP(mp1) == CBN_LBSELECT)) {
           hwndTypeCombo = WinWindowFromID(hwndDlg, 290);
           pfiledlg = (PFILEDLG)WinQueryWindowULong( hwndDlg, QWL_USER );
           pmydata = (PMYDATA)pfiledlg->ulUser;
           pmydata->ulCurExt = (ULONG)WinSendMsg( hwndTypeCombo, LM_QUERYSELECTION, (MPARAM)LIT_FIRST, (MPARAM)0 );
           if (pfiledlg->fl & FDS_OPEN_DIALOG) {
             WinSetWindowText(WinWindowFromID(hwndDlg,DID_FILENAME_ED), *(pmydata->papszIFilterList[pmydata->ulCurExt]));
             WinSendMsg(WinWindowFromID(hwndDlg,DID_FILENAME_ED), EM_SETSEL, MPFROM2SHORT(0, 32000), (MPARAM)0 );
             WinSendMsg(hwndDlg, WM_CONTROL, MPFROM2SHORT(DID_FILTER_CB, CBN_LBSELECT), (MPARAM)0 );
           }
           return (MRESULT)TRUE;
         }
       }
       break;
  }      
  return WinDefFileDlgProc(hwndDlg, msg, mp1, mp2);
}
示例#22
0
MRESULT MuteVolume(USHORT DevID, MPARAM mp1, MPARAM mp2)
{
    BOOL bResult;

    if ( SHORT2FROMMP(mp1) == GBN_BUTTONDOWN ) {
        bResult = CDMuteVolume(DevID, TRUE);
        // CDOptError(bResult, hwnd, ERR_DEVICE_MUTEVOLUME);
        WinSendMsg(MainMenu, MM_SETITEMTEXT, MPFROMSHORT(ID_MUTE),
            MPFROMP(MuteOnText));
        WinSendMsg(sysSubmenu, MM_SETITEMTEXT, MPFROMSHORT(ID_MUTE),
            MPFROMP(MuteOnText));
        }
    else if ( SHORT2FROMMP(mp1) == GBN_BUTTONUP ) {
        bResult = CDMuteVolume(DevID, FALSE);
        // CDOptError(bResult, hwnd, ERR_DEVICE_MUTEVOLUME);
        WinSendMsg(MainMenu, MM_SETITEMTEXT, MPFROMSHORT(ID_MUTE),
            MPFROMP(MuteOffText));
        WinSendMsg(sysSubmenu, MM_SETITEMTEXT, MPFROMSHORT(ID_MUTE),
            MPFROMP(MuteOffText));
        }

    return NULL;
}
示例#23
0
void mmMCINotify(HWND hWnd, MPARAM mp1, MPARAM mp2)
{
   USHORT usNotifyCode = SHORT1FROMMP(mp1);
   USHORT usUserParam  = SHORT2FROMMP(mp1);

   switch(SHORT2FROMMP(mp2))
   {
      case MCI_PLAY:
         switch(usNotifyCode)
         {
            case MCI_NOTIFY_SUCCESSFUL:
               switch(usUserParam)
               {
                  /* Normal play completed */
                  case MMUP_PLAY:
                     PlayCompleted(hWnd);
                     break;
               }
               break;
         }
         break;
   }
}
MRESULT EXPENTRY SelDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) {
   static PPREF_SEL psel;

   switch (msg) {
      case WM_INITDLG:
         psel = (PPREF_SEL)PVOIDFROMMP(mp2);
         InitSelectionPage(hwnd, psel);
         break;
      case WM_CONTROL:
         if (SHORT1FROMMP(mp1) == CBOX_EXT_SEL &&
             SHORT2FROMMP(mp1) == BN_CLICKED) {
            WinEnableControl(hwnd, CBOX_SEL_ALL_INDIR,
                         WinQueryButtonCheckstate(hwnd, CBOX_EXT_SEL));
         } else if (SHORT1FROMMP(mp1) == CBOX_FILE_WIN &&
                    SHORT2FROMMP(mp1) == BN_CLICKED) {
            WinEnableControl(hwnd, CBOX_ONLY_DIR,
                         WinQueryButtonCheckstate(hwnd, CBOX_FILE_WIN));
         } /* endif */
         break;
      case WM_COMMAND:
         switch (LOUSHORT(mp1)) {
            case BTTN_UNDO:
               InitSelectionPage(hwnd, psel);
               break;
            case BTTN_DEFAULT:
               SetSelectionDefault(hwnd);
               break;  
            default:
               break;
         } /* endswitch */
         break;
      default: 
         return WinDefDlgProc(hwnd, msg, mp1, mp2);
         break;
   } /* endswitch */
   return (MRESULT) FALSE;
}
示例#25
0
MRESULT clbControl(PCLBOX pclb, MPARAM mp1, PUSERBUTTON pub) {
   switch (SHORT1FROMMP(mp1)) {
      case FID_CAPTION:
         // click sulla checkbox cambia stato abilitazione altri componenti
         if ((pclb->fl & CLBXS_CHECK) &&
             (SHORT2FROMMP(mp1) == BN_CLICKED ||
              SHORT2FROMMP(mp1) == BN_DBLCLICKED)) {
            pclb->is.chkon = ((BOOL)pclb->pfbtn(pclb->hchk, BM_QUERYCHECK,
                                                MPVOID, MPVOID))? 1: 0;
            WinEnableWindow(pclb->hlbx, pclb->is.chkon);
            WinEnableWindow(pclb->hentry, pclb->is.chkon);
            WinEnableWindow(pclb->hadd, pclb->is.chkon & pclb->is.addon);
            WinEnableWindow(pclb->hrem, pclb->is.chkon & pclb->is.remon);
            WinEnableWindow(pclb->hfind, pclb->is.chkon);
            WinSendMsg(WinQueryWindow(pclb->hwnd, QW_OWNER), WM_CONTROL,
                 MPFROM2SHORT(pclb->id, CLBXN_CHECK), (MPARAM)pclb->is.chkon);
         } /* endif */
         break;
      case FID_LIST:
         clbControlLboxMsg(pclb, SHORT2FROMMP(mp1));
         break;
      case FID_ENTRY:
         clbControlEntryMsg(pclb, SHORT2FROMMP(mp1)); 
         break;
      case FID_ADD:
         if (SHORT2FROMMP(mp1) == BN_PAINT) {
            WdrawBtnBkgnd(pub, pclb->csdbtn, pclb->csdbtn, pclb->lbkgnd);
            drawAdd(pub, pclb->csdbtn);
            if (pub->fsState & BDS_DISABLED)
               drawDisBtn(pub, pclb->csdbtn, pclb->lbkgnd);
         } /* endif */
         break;
      case FID_REMOVE:
         if (SHORT2FROMMP(mp1) == BN_PAINT) {
            WdrawBtnBkgnd(pub, pclb->csdbtn, pclb->csdbtn, pclb->lbkgnd);
            drawRem(pub, pclb->csdbtn);
            if (pub->fsState & BDS_DISABLED)
               drawDisBtn(pub, pclb->csdbtn, pclb->lbkgnd);
         } /* endif */
         break;
      case FID_FIND:
         if (SHORT2FROMMP(mp1) == BN_PAINT) {
            WdrawBtnBkgnd(pub, pclb->csdbtn, pclb->csdbtn, pclb->lbkgnd);
            drawFind(pub, pclb->csdbtn);
            if (pub->fsState & BDS_DISABLED)
               drawDisBtn(pub, pclb->csdbtn, pclb->lbkgnd);
         } /* endif */
         break;
   } /* endswitch */
   return (MRESULT)FALSE;
}
示例#26
0
MRESULT EXPENTRY stlrButtonProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2) {
   if (msg == WM_MOUSEMOVE) {
      if (g.is.onctrl != OCTLBTN) {
         g.is.onctrl = OCTLBTN;
         _resetHideMouTimer();
      } /* endif */
   } else if (msg == o.txt.skipcpy) {
      // non fa intercettare alla procedura di default il WM_BUTTONxDOWN
      // corrispondente ad evento selezionato per copia nella clipboard
      if ((SHORT2FROMMP(mp2) == o.txt.cpyMoukbd) &&
          pd.ppib && !pd.we.txtctl && !o.gen.disabled &&
          o.txt.on && o.txt.btn)
         return (MRESULT)FALSE;
   } else if (msg == o.txt.cpyMoumsg) {
      if ((SHORT2FROMMP(mp2) == o.txt.cpyMoukbd) &&
          pd.ppib && !pd.we.txtctl && !o.gen.disabled &&
          o.txt.on && o.txt.btn) {
         winTextToClipboard(hwnd);
         return (MRESULT)TRUE;
      } /* endif */
   } /* endif */
defaultproc:
   return (MRESULT)g.cd.btn.pfnwp(hwnd, msg, mp1, mp2);
}
SOM_Scope MRESULT   SOMLINK VRIconButtonInstance_vrWM_CONTROL(VRIconButton *somSelf,
		HWND hWnd,
		ULONG msg,
		MPARAM mp1,
		MPARAM mp2)
{
    VRIconButtonData *somThis = VRIconButtonGetData(somSelf);
    VRIconButtonMethodDebug("VRIconButton","VRIconButtonInstance_vrWM_CONTROL");

    if ( SHORT2FROMMP( mp1 ) == BN_PAINT ) {
        PaintButton( somSelf, (PUSERBUTTON) mp2 );
    }

    return (MRESULT) 0;
}
示例#28
0
文件: khserver.c 项目: komh/kime
MRESULT khs_umStoreKeyInfo( HWND hwnd, MPARAM mp1, MPARAM mp2 )
{
    PKHSCD  pkhscd = WinQueryWindowPtr( hwnd, 0 );
    USHORT  fsFlags = SHORT1FROMMP( mp1 );
    UCHAR   ucRepeat = CHAR3FROMMP( mp1 );
    UCHAR   ucScancode = CHAR4FROMMP( mp1 );
    USHORT  usCh = SHORT1FROMMP( mp2 );
    USHORT  usVk = SHORT2FROMMP( mp2 );

    fprintf( pkhscd->fp, "fl : %04X, rp : %02d, sc : %02X, ch : %02X, vk : %02X\n",
                         fsFlags, ucRepeat, ucScancode, usCh, usVk );
    fflush( pkhscd->fp );

    return 0;
}
MRESULT MainVertScroll(HWND hwnd,      /* handle to the main client window */
                       MPARAM mp2)
{
   LONG sVscrollInc;

   switch (SHORT2FROMMP (mp2))
   {
      case SB_LINEUP:
         sVscrollInc = -1 ;
         break ;

      case SB_LINEDOWN:
         sVscrollInc = 1 ;
         break ;

      case SB_PAGEUP:
         sVscrollInc = min (-1, -cyClient / cyChar) ;
         break ;

      case SB_PAGEDOWN:
         sVscrollInc = max (1, cyClient / cyChar) ;
         break ;

      case SB_SLIDERTRACK:
         sVscrollInc = SHORT1FROMMP (mp2) - sVscrollPos;
         break ;

      default:
         sVscrollInc = 0;
         break ;
   }

   sVscrollInc = max (-sVscrollPos,
                 min (sVscrollInc, sVscrollMax - sVscrollPos)) ;

   if (sVscrollInc != 0)
   {
      sVscrollPos += sVscrollInc ;
      WinScrollWindow ((HWND)hwnd, 0, (cyChar * sVscrollInc),
                     (PRECTL)NULL, (PRECTL)NULL, (HRGN)NULL,
                     (PRECTL)NULL, SW_INVALIDATERGN);

      WinSendMsg (hwndVscroll, SBM_SETPOS,
                  MPFROMSHORT (sVscrollPos), MPVOID) ;
      WinUpdateWindow (hwnd) ;
   }
   return (MRFROMLONG(0));
}
MRESULT EXPENTRY ClientWndProc (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
     {
     static INT  cxClient, cyClient ;
     static LONG alJoin [] = { LINEJOIN_BEVEL, LINEJOIN_ROUND, LINEJOIN_MITRE },
                 alEnd  [] = { LINEEND_FLAT, LINEEND_SQUARE, LINEEND_ROUND } ;
     HPS         hps ;
     INT         i ;

     switch (msg)
	  {
          case WM_SIZE:
               cxClient = SHORT1FROMMP (mp2) ;
               cyClient = SHORT2FROMMP (mp2) ;
               return 0 ;

          case WM_PAINT:
               hps = WinBeginPaint (hwnd, NULLHANDLE, NULL) ;

               GpiErase (hps) ;

               for (i = 0 ; i < 3 ; i++)
                    {
                              // Draw the geometric line

                    GpiSetLineJoin (hps, alJoin [i]) ;
                    GpiSetLineEnd  (hps, alEnd  [i]) ;
                    GpiSetLineWidthGeom (hps, cxClient / 20) ;
                    GpiSetColor (hps, CLR_DARKGRAY) ;

                    GpiBeginPath (hps, 1) ;
                    DrawFigure (hps, i, cxClient, cyClient) ;
                    GpiEndPath (hps) ;

                    GpiStrokePath (hps, 1, 0) ;

                              // Draw the cosmetic line

                    GpiSetLineWidth (hps, LINEWIDTH_THICK) ;
                    GpiSetColor (hps, CLR_BLACK) ;

                    DrawFigure (hps, i, cxClient, cyClient) ;
                    }

               WinEndPaint (hps) ;
               return 0 ;
          }
     return WinDefWindowProc (hwnd, msg, mp1, mp2) ;
     }