当前位置: 首页>>代码示例>>C++>>正文


C++ PluginStartupInfo::SendDlgMessage方法代码示例

本文整理汇总了C++中PluginStartupInfo::SendDlgMessage方法的典型用法代码示例。如果您正苦于以下问题:C++ PluginStartupInfo::SendDlgMessage方法的具体用法?C++ PluginStartupInfo::SendDlgMessage怎么用?C++ PluginStartupInfo::SendDlgMessage使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在PluginStartupInfo的用法示例。


在下文中一共展示了PluginStartupInfo::SendDlgMessage方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: OpenPlace

static void OpenPlace(HANDLE hDlg,BoardParams *DlgParams,int row,int col,CHECK_OPEN_PLACE check)
{
  FarDialogItem DialogItem; int color;
  if(row<0) return;
  if(col<0) return;
  if(row>=DlgParams->width) return;
  if(col>=DlgParams->height) return;
  Info.SendDlgMessage(hDlg,DM_GETDLGITEMSHORT,DlgParams->width*col+row,&DialogItem);
  if(GET_DATA_1(DialogItem)==STATE_CLOSE)
  {
    SET_DATA_1(DialogItem,STATE_OPEN);
    DialogItem.VBuf[1].Char=GetChar(GET_DATA_0(DialogItem),GET_DATA_1(DialogItem),&color);
    int bgcolor=GetBG(row,col,GET_DATA_1(DialogItem));
    DialogItem.VBuf[0].Attributes.ForegroundColor=DialogItem.VBuf[1].Attributes.ForegroundColor=DialogItem.VBuf[2].Attributes.ForegroundColor=color;
    DialogItem.VBuf[0].Attributes.BackgroundColor=DialogItem.VBuf[1].Attributes.BackgroundColor=DialogItem.VBuf[2].Attributes.BackgroundColor=bgcolor;
    Info.SendDlgMessage(hDlg,DM_SETDLGITEMSHORT,DlgParams->width*col+row,&DialogItem);
    if(!GET_DATA_0(DialogItem))
    {
      OpenPlace(hDlg,DlgParams,row-1,col-1,COP_NONE);
      OpenPlace(hDlg,DlgParams,row-1,col,COP_NONE);
      OpenPlace(hDlg,DlgParams,row-1,col+1,COP_NONE);
      OpenPlace(hDlg,DlgParams,row,col-1,COP_NONE);
      OpenPlace(hDlg,DlgParams,row,col+1,COP_NONE);
      OpenPlace(hDlg,DlgParams,row+1,col-1,COP_NONE);
      OpenPlace(hDlg,DlgParams,row+1,col,COP_NONE);
      OpenPlace(hDlg,DlgParams,row+1,col+1,COP_NONE);
    }
    if(check!=COP_NONE) CheckStop(hDlg,DlgParams,row,col);
  }
  else if(check==COP_CHECK_ALL&&GET_DATA_1(DialogItem)==STATE_OPEN&&GET_DATA_0(DialogItem)>0&&GET_DATA_0(DialogItem)<9)
  {
    int mines=0;
    mines+=GetMine(row-1,col-1,hDlg,DlgParams,true);
    mines+=GetMine(row-1,col,hDlg,DlgParams,true);
    mines+=GetMine(row-1,col+1,hDlg,DlgParams,true);
    mines+=GetMine(row,col-1,hDlg,DlgParams,true);
    mines+=GetMine(row,col+1,hDlg,DlgParams,true);
    mines+=GetMine(row+1,col-1,hDlg,DlgParams,true);
    mines+=GetMine(row+1,col,hDlg,DlgParams,true);
    mines+=GetMine(row+1,col+1,hDlg,DlgParams,true);
    if(mines==GET_DATA_0(DialogItem)) //FIXME
    {
      OpenPlace(hDlg,DlgParams,row-1,col-1,COP_CHECK_STOP);
      OpenPlace(hDlg,DlgParams,row-1,col,COP_CHECK_STOP);
      OpenPlace(hDlg,DlgParams,row-1,col+1,COP_CHECK_STOP);
      OpenPlace(hDlg,DlgParams,row,col-1,COP_CHECK_STOP);
      OpenPlace(hDlg,DlgParams,row,col+1,COP_CHECK_STOP);
      OpenPlace(hDlg,DlgParams,row+1,col-1,COP_CHECK_STOP);
      OpenPlace(hDlg,DlgParams,row+1,col,COP_CHECK_STOP);
      OpenPlace(hDlg,DlgParams,row+1,col+1,COP_CHECK_STOP);

      CheckStop(hDlg,DlgParams,row,col);
    }
  }
}
开发者ID:Maximus5,项目名称:evil-programmers,代码行数:55,代码来源:farmine.cpp

示例2: SetFocusUser

static void SetFocusUser(HANDLE hDlg,BoardParams *DlgParams,bool real)
{
  if(real)
    Info.SendDlgMessage(hDlg,DM_SETFOCUS,DlgParams->width*DlgParams->curr_col+DlgParams->curr_row,0);
  else
  {
    int curr_elem=(int)Info.SendDlgMessage(hDlg,DM_GETFOCUS,0,0);
    DlgParams->curr_row=curr_elem%DlgParams->width;
    DlgParams->curr_col=curr_elem/DlgParams->width;
  }
  RedrawPlace(hDlg,DlgParams,true);
}
开发者ID:Maximus5,项目名称:evil-programmers,代码行数:12,代码来源:farmine.cpp

示例3: RedrawPlace

static void RedrawPlace(HANDLE hDlg,BoardParams *DlgParams,bool focused)
{
  int color;
  FarDialogItem DialogItem;
  Info.SendDlgMessage(hDlg,DM_GETDLGITEMSHORT,DlgParams->width*DlgParams->curr_col+DlgParams->curr_row,&DialogItem);
  DialogItem.VBuf[1].Char=GetChar(GET_DATA_0(DialogItem),GET_DATA_1(DialogItem),&color);
  if(focused&&color==(FOREGROUND_RED|FOREGROUND_INTENSITY)) color=0;
  int bgcolor=focused?(FOREGROUND_RED|FOREGROUND_INTENSITY):(GetBG(DlgParams->curr_row,DlgParams->curr_col,GET_DATA_1(DialogItem)));
  DialogItem.VBuf[0].Attributes.ForegroundColor=DialogItem.VBuf[1].Attributes.ForegroundColor=DialogItem.VBuf[2].Attributes.ForegroundColor=color;
  DialogItem.VBuf[0].Attributes.BackgroundColor=DialogItem.VBuf[1].Attributes.BackgroundColor=DialogItem.VBuf[2].Attributes.BackgroundColor=bgcolor;
}
开发者ID:Maximus5,项目名称:evil-programmers,代码行数:11,代码来源:farmine.cpp

示例4: GetMine

static int GetMine(int row,int col,HANDLE hDlg,BoardParams *DlgParams,bool flagged)
{
  if(row<0) return 0;
  if(col<0) return 0;
  if(row>=DlgParams->width) return 0;
  if(col>=DlgParams->height) return 0;
  FarDialogItem DialogItem;
  Info.SendDlgMessage(hDlg,DM_GETDLGITEMSHORT,col*DlgParams->width+row,&DialogItem);
  if(flagged)
  {
    if(GET_DATA_1(DialogItem)==STATE_MARKED) return 1;
  }
  else
  {
    if(GET_DATA_0(DialogItem)==9) return 1;
  }
  return 0;
}
开发者ID:Maximus5,项目名称:evil-programmers,代码行数:18,代码来源:farmine.cpp

示例5: if

int WINAPI _export Message(unsigned long Msg,void *InData,void *OutData)
{
  (void)OutData;
  switch(Msg)
  {
    case FMMSG_GETINFO:
      {
        GetInfoOutData *data=(GetInfoOutData *)OutData;
        GetMsg(mName,data->MenuString);
        strcpy(data->HotkeyID,"ay_appendall");
        data->Flags=FMMSG_MENU|FMMSG_FILTER;
      }
      return TRUE;

    case FMMSG_MENU:
      {
        MenuInData *dlg=(MenuInData *)InData;
        FarDialogItem Item;
        if (FarInfo.SendDlgMessage(dlg->hDlg,DM_GETDLGITEM,0,(long)&Item))
        {
          if (!strcmp(Item.Data,GetMsg(mWarningTitle,tmp)))
          {
            if (FarInfo.SendDlgMessage(dlg->hDlg,DM_GETDLGITEM,11,(long)&Item))
            {
              if (strstr(Item.Data,GetMsg(mAppendButton,tmp)))
              {
                AppendAll=true;
                FarInfo.SendDlgMessage(dlg->hDlg,DM_CLOSE,11,0);
              }
            }
          }
        }
      }
      return TRUE;

    case FMMSG_FILTER:
      {
        FilterInData *dlg=(FilterInData *)InData;
        if(dlg->Msg==DN_INITDIALOG && AppendAll)
        {
          FarDialogItem Item;
          if (FarInfo.SendDlgMessage(dlg->hDlg,DM_GETDLGITEM,0,(long)&Item))
          {
            if (!strcmp(Item.Data,GetMsg(mCopyTitle,tmp)) || !strcmp(Item.Data,GetMsg(mMoveTitle,tmp)))
            {
              if (FarInfo.SendDlgMessage(dlg->hDlg,DM_GETDLGITEM,12,(long)&Item))
              {
                if (strstr(Item.Data,GetMsg(mTreeButton,tmp)))
                  AppendAll=false; //reset when new copy/move starts
              }
            }
            else if (!strcmp(Item.Data,GetMsg(mWarningTitle,tmp)))
            {
              if (FarInfo.SendDlgMessage(dlg->hDlg,DM_GETDLGITEM,11,(long)&Item))
              {
                if (strstr(Item.Data,GetMsg(mAppendButton,tmp)))
                {
                  FarInfo.SendDlgMessage(dlg->hDlg,DM_CLOSE,11,0);
                }
              }
            }
          }
        }
      }
      return TRUE;
  }
  return FALSE;
}
开发者ID:CS-svnmirror,项目名称:evil-programmers,代码行数:68,代码来源:appendall.cpp

示例6: if

static intptr_t WINAPI MyDlgProc(HANDLE hDlg, intptr_t Msg, intptr_t Param1, void *Param2)
{
	FarGetDialogItem DialogItem={sizeof(FarGetDialogItem)};
	const INPUT_RECORD* record;

	switch (Msg)
	{
	case DN_CONTROLINPUT:
		record=(const INPUT_RECORD *)Param2;
		if (record->EventType==KEY_EVENT &&
			record->Event.KeyEvent.bKeyDown &&
			record->Event.KeyEvent.dwControlKeyState & SHIFT_PRESSED &&
			(record->Event.KeyEvent.dwControlKeyState & LEFT_CTRL_PRESSED ||
			record->Event.KeyEvent.dwControlKeyState & RIGHT_CTRL_PRESSED))
		{
			switch (record->Event.KeyEvent.wVirtualKeyCode) {
			case VK_DOWN:
				ScrollText(stDn);
				return TRUE;
			case VK_UP:
				ScrollText(stUp);
				return TRUE;
			case VK_NEXT:
				ScrollText(stPgDn);
				return TRUE;
			case VK_PRIOR:
				ScrollText(stPgUp);
				return TRUE;
			case VK_END:
				ScrollText(stEnd);
				return TRUE;
			case VK_HOME:
				ScrollText(stHome);
				return TRUE;
			}
		}
		break;

	case DN_BTNCLICK:
		if (Param1==ixCaseSensitive) {
			bool bCaseSensitive = Param2!=0;
			if (bCaseSensitive!=bPrevCaseSensitive)
				UndoAll();
			bPrevCaseSensitive = bCaseSensitive;
		}
		Filter(PrevPattern, bPrevCaseSensitive);
		Info.AdvControl(&PluginId, ACTL_REDRAWALL, 0, NULL);
		break;

	case DN_EDITCHANGE:
		DialogItem.Size = (size_t)Info.SendDlgMessage(hDlg, DM_GETDLGITEM, ixSearchString, NULL);
		DialogItem.Item = (FarDialogItem*)malloc(DialogItem.Size);
		if (DialogItem.Item) {
			Info.SendDlgMessage(hDlg, DM_GETDLGITEM, ixSearchString, &DialogItem);
			size_t nChars = wcslen(DialogItem.Item->Data);
			size_t nPrevChars = Length(PrevPattern);
			bool bFilter = true;
			if (PrevPattern!=NULL) {
				//получается ли новая строка укорачиванием старой на символ
				if (bSequentialInput && nChars+1 == nPrevChars &&
					wcsncmp(DialogItem.Item->Data, PrevPattern, nChars) == 0)
				{
					//да - откатываем одну правку
					Undo();
					bFilter = false;
				}
				else
				{
					//получается ли новая строка добавлением символа к старой
					if (!(nChars == nPrevChars+1 &&
						wcsncmp(DialogItem.Item->Data, PrevPattern, nPrevChars) == 0))
					{
						//если нет - считаем, что откатывать по одной правке нельзя
						bSequentialInput = false;
					}
					//можно ли искать новую строку среди уже отфильтрованных
					if (wcsstr(DialogItem.Item->Data, PrevPattern) == NULL)
					{
						//нет - откатываем все правки
						UndoAll();
					}
				}
			}
			//выделить контекст заново при необходимости
			if (Length(PrevPattern)<MAX_PATTERN_LEN && nChars>=MAX_PATTERN_LEN) {
				SearchFree(ctx);
				ctx = SearchHAlloc();
			}
			else if (Length(PrevPattern)>=MAX_PATTERN_LEN && nChars<MAX_PATTERN_LEN) {
				SearchHFree(ctx);
				ctx = SearchAlloc();
			}

			//запомнить значение фильтра
			if (nChars!=0) {
				SetLength(&PrevPattern, (int)nChars);
				wcscpy(PrevPattern, DialogItem.Item->Data);
			}
			else {
				SetLength(&PrevPattern, 0);
//.........这里部分代码省略.........
开发者ID:iyudincev,项目名称:FilterLines,代码行数:101,代码来源:FilterLines.cpp

示例7: GetCheck

static intptr_t GetCheck(HANDLE hDlg, intptr_t i)
{
	return (intptr_t)Info.SendDlgMessage(hDlg, DM_GETCHECK, i, 0);
}
开发者ID:iyudincev,项目名称:FilterLines,代码行数:4,代码来源:FilterLines.cpp

示例8: settings

static intptr_t WINAPI MainDialogProc(HANDLE hDlg,intptr_t Msg,intptr_t Param1,void* Param2)
{
  BoardParams* DlgParams=(BoardParams*)Info.SendDlgMessage(hDlg,DM_GETDLGDATA,0,0);
  //if(Msg==DN_KEY&&Param2==KEY_ENTER) return TRUE;
  switch(Msg)
  {
    case DN_INITDIALOG:
      Info.SendDlgMessage(hDlg,DM_RESETBOARD,0,0);
      SetFocus(true);
      break;
    case DN_CONTROLINPUT:
      {
        const INPUT_RECORD* record=(const INPUT_RECORD*)Param2;
        if(record->EventType==KEY_EVENT&&record->Event.KeyEvent.bKeyDown)
        {
          KillFocus();
          if(IsNone(record))
          {
            switch(record->Event.KeyEvent.wVirtualKeyCode)
            {
              case VK_UP:
                DlgParams->curr_col--;
                break;
              case VK_DOWN:
                DlgParams->curr_col++;
                break;
              case VK_LEFT:
                DlgParams->curr_row--;
                break;
              case VK_RIGHT:
                DlgParams->curr_row++;
                break;
              case VK_HOME:
                DlgParams->curr_row=0;
                break;
              case VK_END:
                DlgParams->curr_row=DlgParams->width-1;
                break;
              case VK_PRIOR:
                DlgParams->curr_col=0;
                break;
              case VK_NEXT:
                DlgParams->curr_col=DlgParams->height-1;
                break;
              case L' ':
                {
                  Info.SendDlgMessage(hDlg,DM_ENABLEREDRAW,FALSE,0);
                  if(!DlgParams->finished)
                  {
                    if(!DlgParams->started) Info.SendDlgMessage(hDlg,DM_START_GAME,0,0);
                    OpenPlace(hDlg,DlgParams,DlgParams->curr_row,DlgParams->curr_col,COP_CHECK_ALL);
                  }
                  Info.SendDlgMessage(hDlg,DM_ENABLEREDRAW,TRUE,0);
                }
                break;
              case VK_DELETE:
                {
                  Info.SendDlgMessage(hDlg,DM_ENABLEREDRAW,FALSE,0);
                  if(!DlgParams->finished)
                  {
                    FarDialogItem DialogItem;
                    Info.SendDlgMessage(hDlg,DM_GETDLGITEMSHORT,DlgParams->width*DlgParams->curr_col+DlgParams->curr_row,&DialogItem);
                    switch(GET_DATA_1(DialogItem))
                    {
                      case STATE_CLOSE:
                        SET_DATA_1(DialogItem,STATE_MARKED);
                        DlgParams->curr_mines++;
                        break;
                      case STATE_OPEN:
                        break;
                      case STATE_MARKED:
                        SET_DATA_1(DialogItem,STATE_CLOSE);
                        DlgParams->curr_mines--;
                        break;
                    }
                    Info.SendDlgMessage(hDlg,DM_SETDLGITEMSHORT,DlgParams->width*DlgParams->curr_col+DlgParams->curr_row,&DialogItem);
                    Info.SendDlgMessage(hDlg,DM_SHOWTIME,0,0);
                  }
                  Info.SendDlgMessage(hDlg,DM_ENABLEREDRAW,TRUE,0);
                }
                break;
              case VK_F2:
                DlgParams->started=false;
                DlgParams->finished=FINISH_NO;
                Info.SendDlgMessage(hDlg,DM_SETTEXTPTR,DlgParams->width*DlgParams->height,const_cast<wchar_t*>(GetMsg(mStart)));
                Info.SendDlgMessage(hDlg,DM_RESETBOARD,0,0);
                break;
              case VK_F3:
                {
                  wchar_t ScoreKeyName[1024],PlayerKeyName[1024];
                  FSF.sprintf(ScoreKeyName,L"Score_%d_%d_%d",DlgParams->width,DlgParams->height,DlgParams->mines);
                  FSF.sprintf(PlayerKeyName,L"Player_%d_%d_%d",DlgParams->width,DlgParams->height,DlgParams->mines);
                  CFarSettings settings(MainGuid);
                  __int64 Score; wchar_t Name[512];
                  Score=settings.Get(ScoreKeyName,-1);
                  if(!settings.Get(PlayerKeyName,Name,sizeofa(Name))) Name[0]=0;
                  if(Score>=0&&Name[0])
                  {
                    wchar_t buffer[1024];
                    FSF.sprintf(buffer,GetMsg(mHighscoreFormat),Name,(long)Score);
//.........这里部分代码省略.........
开发者ID:Maximus5,项目名称:evil-programmers,代码行数:101,代码来源:farmine.cpp

示例9: CheckStop

static void CheckStop(HANDLE hDlg,BoardParams *DlgParams,int row,int col)
{
  if(DlgParams->finished!=FINISH_NO) return;
  FarDialogItem DialogItem;
  Info.SendDlgMessage(hDlg,DM_GETDLGITEMSHORT,DlgParams->width*col+row,&DialogItem);
  if(GET_DATA_1(DialogItem)==STATE_OPEN&&GET_DATA_0(DialogItem)==9)
  {
    Info.SendDlgMessage(hDlg,DM_SETTEXTPTR,DlgParams->width*DlgParams->height,const_cast<wchar_t*>(GetMsg(mLose)));
    DlgParams->finished=FINISH_LOSE;
    DlgParams->end_time=GetTickCount();
    Beep((long)Opt.LoseFreq,100);
    Info.SendDlgMessage(hDlg,DM_SHOWTIME,0,NULL);
  }
  else
  {
    FarDialogItem DialogItem; bool won=true;
    for(int i=0;i<DlgParams->height;i++)
    {
      for(int j=0;j<DlgParams->width;j++)
      {
        int k=i*DlgParams->width+j;
        Info.SendDlgMessage(hDlg,DM_GETDLGITEMSHORT,k,&DialogItem);
        if(GET_DATA_1(DialogItem)==STATE_CLOSE&&GET_DATA_0(DialogItem)<9) //FIXME
        {
          won=false;
          break;
        }
        else if(GET_DATA_1(DialogItem)==STATE_MARKED&&GET_DATA_0(DialogItem)<9)
        {
          won=false;
          break;
        }
        else if(GET_DATA_1(DialogItem)==STATE_OPEN&&GET_DATA_0(DialogItem)==9)
        {
          won=false;
          break;
        }
      }
      if(!won) break;
    }
    if(won)
    {
      Info.SendDlgMessage(hDlg,DM_SETTEXTPTR,DlgParams->width*DlgParams->height,const_cast<wchar_t*>(GetMsg(mWon)));
      DlgParams->finished=FINISH_WON;
      DlgParams->end_time=GetTickCount();
      DlgParams->curr_mines=DlgParams->mines;
      Beep((long)Opt.WonFreq,100);
      int color;
      for(int i=0;i<DlgParams->height;i++)
        for(int j=0;j<DlgParams->width;j++)
        {
          int k=i*DlgParams->width+j;
          Info.SendDlgMessage(hDlg,DM_GETDLGITEMSHORT,k,&DialogItem);
          if(GET_DATA_1(DialogItem)==STATE_CLOSE)
          {
            SET_DATA_1(DialogItem,STATE_MARKED);
            DialogItem.VBuf[1].Char=GetChar(GET_DATA_0(DialogItem),GET_DATA_1(DialogItem),&color);
            int bgcolor=GetBG(i,j,GET_DATA_1(DialogItem));
            DialogItem.VBuf[0].Attributes.ForegroundColor=DialogItem.VBuf[1].Attributes.ForegroundColor=DialogItem.VBuf[2].Attributes.ForegroundColor=color;
            DialogItem.VBuf[0].Attributes.BackgroundColor=DialogItem.VBuf[1].Attributes.BackgroundColor=DialogItem.VBuf[2].Attributes.BackgroundColor=bgcolor;
            Info.SendDlgMessage(hDlg,DM_SETDLGITEMSHORT,k,&DialogItem);
          }
        }
      Info.SendDlgMessage(hDlg,DM_SHOWTIME,0,0);
      SubmitScore(DlgParams);
    }
  }
}
开发者ID:Maximus5,项目名称:evil-programmers,代码行数:68,代码来源:farmine.cpp

示例10: if

static intptr_t WINAPI MainDialogProc(HANDLE hDlg,intptr_t Msg,intptr_t Param1,void* Param2)
{
  switch(Msg)
  {
    case DN_INITDIALOG:
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_INIT,1,0);
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("aaa"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("1 bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("2 bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("3 bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("4 bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("5 bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("6 bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("7 bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("8 bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("9 bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("0 bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("1 bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("2 bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("3 bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("4 bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("5 bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("6 bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("7 bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("8 bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("9 bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("0 bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("1 bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("2 bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("3 bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("4 bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("5 bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("6 bbb"));
      Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ADDSTR,1,(void*)_T("7 bbb"));
      {
        ListBoxExSetColor color={2,LISTBOXEX_COLORS_ITEM,0,{{FCF_FG_4BIT|FCF_BG_4BIT,0xC,0x7,NULL},0,false}};
        for(int i=2;i<5;i++)
        {
          color.ColorIndex=i;
          Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ITEM_SETCOLOR,1,&color);
        }
        color.Color.Color.ForegroundColor=0xA;
        color.Color.Color.BackgroundColor=0x7;
        for(int i=7;i<10;i++)
        {
          color.ColorIndex=i;
          Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ITEM_SETCOLOR,1,&color);
        }
        color.Color.Color.ForegroundColor=0x9;
        color.Color.Color.BackgroundColor=0x7;
        for(int i=12;i<15;i++)
        {
          color.ColorIndex=i;
          Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ITEM_SETCOLOR,1,&color);
        }
        color.Color.Color.ForegroundColor=0x9;
        color.Color.Color.BackgroundColor=0x0;
        color.TypeIndex=LISTBOXEX_COLORS_SELECTED;
        for(int i=12;i<15;i++)
        {
          color.ColorIndex=i;
          Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ITEM_SETCOLOR,1,&color);
        }
        ListBoxExSetHotkey hotkey={16,'a'};
        Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ITEM_SETHOTKEY,1,&hotkey);
      }
      break;
    case DN_CONTROLINPUT:
      {
        const INPUT_RECORD* record=(const INPUT_RECORD *)Param2;
        if(record->EventType==KEY_EVENT&&record->Event.KeyEvent.bKeyDown)
        {
          WORD vk=record->Event.KeyEvent.wVirtualKeyCode;
          if(IsNone(record))
          {
            switch(vk)
            {
              case VK_DELETE:
                {
                  FarListDelete list={sizeof(FarListDelete),3,4};
                  Info.SendDlgMessage(hDlg,DM_LISTBOXEX_DELETE,1,&list);
                }
                break;
              case VK_F2:
                {
                  ListBoxExSetFlags flags={Info.SendDlgMessage(hDlg,DM_LISTBOXEX_GETCURPOS,1,0L),LIFEX_DISABLE};
                  Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ITEM_SETFLAGS,1,&flags);
                }
                break;
              case VK_F3:
                {
                  ListBoxExSetFlags flags={Info.SendDlgMessage(hDlg,DM_LISTBOXEX_GETCURPOS,1,0L)-1,0};
                  Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ITEM_SETFLAGS,1,&flags);
                }
                break;
              case VK_INSERT:
                Info.SendDlgMessage(hDlg,DM_LISTBOXEX_ITEM_TOGGLE,1,(void*)Info.SendDlgMessage(hDlg,DM_LISTBOXEX_GETCURPOS,1,0L));
                break;
//.........这里部分代码省略.........
开发者ID:Maximus5,项目名称:evil-programmers,代码行数:101,代码来源:test.cpp


注:本文中的PluginStartupInfo::SendDlgMessage方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。