VC小技巧20个
VC小技巧20个 1. 打开CD-ROM mciSendString(Set cdAudio door openwait,NULL,0,NULL); 2. 关闭CD_ROM mciSendString(Set cdAudio door closedwait,NULL,0,NULL); 3. 关闭计算机 OSVERSIONINFO OsVersionInfo; // 包含操作系统版本信息的数据结构 OsVersionIn
VC小技巧20个
1. 打开CD-ROM
mciSendString("Set cdAudio door openwait",NULL,0,NULL);
2. 关闭CD_ROM
mciSendString("Set cdAudio door closedwait",NULL,0,NULL);
3. 关闭计算机
OSVERSIONINFO OsVersionInfo; //包含操作系统版本信息的数据结构
OsVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&OsVersionInfo); //获取操作系统版本信息
if(OsVersionInfo.dwPlatformId ==VER_PLATFORM_WIN32_WINDOWS)
{
//Windows98,调用ExitWindowsEx()函数重新启动计算机
DWORD dwReserved;
ExitWindowsEx(EWX_REBOOT,dwReserved);//可以改变第一个参数,实现注销用户、
//关机、关闭电源等操作
// 退出前的一些处理程序
}
4. 重启计算机
typedef int (CALLBACK *SHUTDOWNDLG)(int); //显示关机对话框函数的指针
HINSTANCE hInst = LoadLibrary("shell32.dll");//装入shell32.dll
SHUTDOWNDLG ShutDownDialog; //指向shell32.dll库中显示关机对话框函数的指针
if(hInst != NULL)
{
//获得函数的地址并调用之
ShutDownDialog =(SHUTDOWNDLG)GetProcAddress(hInst,(LPSTR)60);
(*ShutDownDialog)(0);
}
5. 枚举所有字体
LOGFONT lf;
lf.lfCharSet = DEFAULT_CHARSET; // Initialize the LOGFONTstructure
strcpy(lf.lfFaceName,"");
CClientDC dc (this);
//Enumerate the font families
::EnumFontFamiliesEx((HDC) dc,&lf,
(FONTENUMPROC) EnumFontFamProc,(LPARAM) this,0);
//枚举函数
int CALLBACK EnumFontFamProc(LPENUMLOGFONTlpelf,LPNEWTEXTMETRIC
lpntm,DWORD nFontType,long lparam)
{
// Create a pointer to the dialogwindow
CDay7Dlg* pWnd = (CDay7Dlg*) lparam;
// add the font name to the list box
pWnd->m_ctlFontList.AddString(lpelf ->elfLogFont.lfFaceName);
// Return 1 to continue fontenumeration
return 1;
}
其中m_ctlFontList是一个列表控件变量
6. 一次只运行一个程序实例,如果已运行则退出
if( FindWindow(NULL,"程序标题")) exit(0);
7. 得到当前鼠标所在位置
CPoint pt;
GetCursorPos(&pt); //得到位置
8. 上下文菜单事件触发事件:
OnContextMenu事件
9. 显示和隐藏程序菜单
CWnd *pWnd=AfxGetMainWnd();
if(b_m) //隐藏菜单
{
pWnd->SetMenu(NULL);
pWnd->DrawMenuBar();
b_m=false;
}
else
{
CMenu menu;
menu.LoadMenu(IDR_MAINFRAME); ////显示菜单也可改变菜单项
pWnd->SetMenu(&menu);
pWnd->DrawMenuBar();
b_m=true;
menu.Detach();
}
10. 获取可执行文件的图标
HICON
hIcon=::ExtractIcon(AfxGetInstanceHandle(),_T("NotePad.exe"),0);
if (hIcon &&hIcon!=(HICON)-1)
{
pDC->DrawIcon(10,10,hIcon);
}
DestroyIcon(hIcon);
11. 窗口自动靠边程序演示
BOOL AdjustPos(CRect* lpRect)
{
//自动靠边
intiSX=GetSystemMetrics(SM_CXFULLSCREEN);
intiSY=GetSystemMetrics(SM_CYFULLSCREEN);
RECT rWorkArea;
BOOL bResult =SystemParametersInfo(SPI_GETWORKAREA,
sizeof(RECT), &rWorkArea, 0);
CRect rcWA;
if(!bResult)
{
//如果调用不成功就利用GetSystemMetrics获取屏幕面积
rcWA=CRect(0,0,iSX,iSY);
}
else
rcWA=rWorkArea;
int iX=lpRect->left;
int iY=lpRect->top;
if(iX
{
//调整左
//pWnd->SetWindowPos(NULL,rcWA.left,iY,0,0,SWP_NOSIZE);
lpRect->OffsetRect(rcWA.left-iX,0);
AdjustPos(lpRect);
return TRUE;
}
if(iY
{
//调整上
//pWnd->SetWindowPos(NULL,iX,rcWA.top,0,0,SWP_NOSIZE);
lpRect->OffsetRect(0,rcWA.top-iY);
AdjustPos(lpRect);
return TRUE;
}
if(iX + lpRect->Width() >rcWA.right - DETASTEP && iX
!=rcWA.right-lpRect->Width())
{
//调整右
//pWnd->SetWindowPos(NULL
,rcWA.right-rcW.Width(),iY,0,0,SWP_NOSIZE);
lpRect->OffsetRect(rcWA.right-lpRect->right,0);
AdjustPos(lpRect);
return TRUE;
}
if(iY + lpRect->Height() >rcWA.bottom - DETASTEP && iY
!=rcWA.bottom-lpRect->Height())
{
//调整下
//pWnd->SetWindowPos(NULL
,iX,rcWA.bottom-rcW.Height(),0,0,SWP_NOSIZE);
lpRect->OffsetRect(0,rcWA.bottom-lpRect->bottom);
return TRUE;
}
return FALSE;
}
//然后在ONMOVEING事件中使用所下过程调用
CRect r=*pRect;
AdjustPos(&r);
*pRect=(RECT)r;
12. 给系统菜单添加一个菜单项
给系统菜单添加一个菜单项需要进行下述三个步骤:
首先,使用Resource Symbols对话(在View菜单中选择Resource Symbols ...可以显示该对话)定义菜单项ID,该ID应大于0x0F而小于0xF000;
其次,调用CWnd::GetSystemMenu获取系统菜单的指针并调用CWnd::Appendmenu将菜单项添加到菜单中。下例给系统菜单添加两个新的菜单项。
int CMainFrame:: OnCreate (LPCREATESTRUCT lpCreateStruct)
{
…
//Make sure system menu item is in theright range.
ASSERT(IDM_MYSYSITEM
//Get pointer to system menu.
CMenu* pSysMenu=GetSystemMenu(FALSE);
ASSERT_VALID(pSysMenu);
//Add a separator and our menu item tosystem menu.
CString StrMenuItem(_T ("New menuitem"));
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING,IDM_MYSYSITEM, StrMenuItem);
…
}
13. 运行其它程序
//运行EMAIL或网址
char szMailAddress[80];
strcpy(szMailAddress,"");
ShellExecute(NULL, "open", szMailAddress, NULL,NULL,
SW_SHOWNORMAL);
//2、运行可执行程序
WinExec("notepad.exe",SW_SHOW); //运行记事本
14. 动态增加或删除菜单
(1) 增加菜单
//添加
CMenu *mainmenu;
mainmenu=AfxGetMainWnd()->GetMenu(); //得到主菜单
(mainmenu->GetSubMenu (0))->AppendMenu(MF_SEPARATOR);//添加分隔符
(mainmenu->GetSubMenu
(0))->AppendMenu(MF_STRING,ID_APP_ABOUT,_T("Alwayson &Top"));
//添加新的菜单项
DrawMenuBar(); //重画菜单
(2) 删除菜单
//删除
CMenu *mainmenu;
mainmenu=AfxGetMainWnd()->GetMenu(); //得到主菜单
CString str ;
for(int i=(mainmenu->GetSubMenu (0))->GetMenuItemCount()-1;i>=0;i--)
//取得菜单的项数。
{
(mainmenu->GetSubMenu(0))->GetMenuString(i,str,MF_BYPOSITION);
//MF_BYPOSITION的解释见上。
if(str=="Always on&Top") //如果是刚才我们增加的菜单项,则删除。
{
(mainmenu->GetSubMenu (0))->DeleteMenu(i,MF_BYPOSITION);
break;
}
}
15. 测试ALT键是否按下:
GetKeyState(VK_MENU);
GetAlt();
16. 检查是否按下鼠标左键
if((nFlags&MK_LBUTTON)==MK_LBUTTON)
17. 检查键盘输入
在OnKeyDown中的参数nChar是一个数值,当显示的时候,需要转换成字符,使用如下的命令:
char lsChar;
lsChar=char(nChar);
if(lsChar=='A');
{
.......
}
18. 调用另一个函数::GetKeyState(),用一个特定的键代码来确定法键是否被按下。如果::GetKeyState函数的返回值是负的,表示该键被按下。如果返回值是非负的,表示该留未被按下。例如:如果要确定shift键是否被按下,可以使用下面的代码:
if(::GetKeyState(VK_SHIFT)
{
AfxMessageBox("shift ispressed");
}
19. 如何在编程的过程中随时结束应用程序(常规)
1)需要向窗口发送 WM_CLOSE/WM_QUIT消息,
调用 CWnd::OnClose成员函数并允许对用户提示是否保存修改过的数据.
AfxGetMainWnd()->SendMessage(WM_CLOSE); //别忘了先得到当前窗口的指针
2)使用函数: void PostQuitMessage( int nExitCode // exit code );
3)使用标准函数:void exit( int status ); //尽量不要在MFC中使用
20. 得到屏幕的尺寸大小
HWND hWnd;
CRect Rect;
hWnd = ::GetDesktopWindow();
::GetClientRect(hWnd, &Rect);
//---------------------------------------------------------
如何查询和设置系统参数
在Windows 3.1SDK中介绍过SDK函数SystemParametersInfo,调用该函数可以查询和设置系统参数,诸如按键的重复速率设置、鼠标双击延迟时间、图标字体以及桌面覆盖位图等等。
//Create a font that is used for icon titles.
LOGFONT stFont; :: SystemParametersInfo(SPIF_GETICONTITLELOGFONT,
sizeof (LOGFONT), &stFont,SPIF_SENDWININICHANGE);
m_font.CreateFontIndirect (&stFont); //Change thewallpaper to leaves.bmp.
:: SystemParametersInfo (SPI_SETDESKWALLPAPER, 0,
_T("forest.bmp"),SPIF_UPDATEINIFILE);
//---------------------------------------------------------
如何使用一个预定义的Windows光标?调用CWinApp:: LoadStandardCursor并传送光标标识符。
BOOL CSampleDialog:: OnSetCursor(CWnd* pWnd, UINT nHitTest,
UINT message) { //Display wait cursor if busy.
if (m_bBusy) {
SetCursor (AfxGetApp () ->LoadStandardCursor(IDC_WAIT));
return TRUE; }
return CDialog:: OnSetCursor (pWnd. nHitTest,message); }

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Douyin est une application sociale de courtes vidéos populaire. Les utilisateurs peuvent non seulement regarder et partager divers types de contenus vidéo courts, mais également proposer une série de mini-jeux auxquels vous pouvez jouer. Alors, où puis-je accéder aux mini-jeux Douyin ? Où est l’entrée du mini-jeu Douyin ? Jetons un coup d'œil au didacticiel détaillé ci-dessous. Méthode 1 : Ouvrez le mini programme 1. Cliquez sur l'option Mon. Après être entré sur la page d'accueil de Douyin, cliquez sur l'option Mon pour entrer. 2. Cliquez sur les trois lignes horizontales. Après être entré dans l'interface Mon, cliquez sur le bouton des trois lignes horizontales ci-dessus. 3. Cliquez sur le mini programme. Après avoir ouvert l'option des trois lignes horizontales, cliquez sur le mini programme à l'intérieur. 4. Cliquez sur le mini-jeu Douyin. Après être entré dans l'interface du mini-programme, cliquez sur l'option Mini-jeu Douyin pour l'ouvrir. Méthode 2 : Rechercher et ouvrir 1. Cliquez sur la loupe pour entrer

Partage de conseils Win11 : une astuce pour éviter la connexion au compte Microsoft Windows 11 est le dernier système d'exploitation lancé par Microsoft, avec un nouveau style de conception et de nombreuses fonctions pratiques. Cependant, pour certains utilisateurs, devoir se connecter à leur compte Microsoft à chaque démarrage du système peut être un peu ennuyeux. Si vous en faites partie, autant essayer les conseils suivants, qui vous permettront d'éviter de vous connecter avec un compte Microsoft et d'accéder directement à l'interface de bureau. Tout d’abord, nous devons créer un compte local dans le système pour nous connecter au lieu d’un compte Microsoft. L'avantage de faire cela est

En langage C, il représente un pointeur qui stocke l'adresse d'autres variables ; & représente l'opérateur d'adresse, qui renvoie l'adresse mémoire d'une variable. Les conseils pour l'utilisation des pointeurs incluent la définition des pointeurs, le déréférencement des pointeurs et la garantie que les pointeurs pointent vers des adresses valides. Les conseils pour l'utilisation des opérateurs d'adresse incluent l'obtention d'adresses variables et le retour de l'adresse du premier élément du tableau lors de l'obtention de l'adresse d'un élément du tableau ; . Un exemple pratique démontrant l'utilisation d'opérateurs de pointeur et d'adresse pour inverser une chaîne.

Nous créons et éditons souvent des tableaux dans Excel, mais en tant que novice qui vient d'entrer en contact avec le logiciel, comment utiliser Excel pour créer des tableaux n'est pas aussi simple que pour nous. Ci-dessous, nous réaliserons quelques exercices sur certaines étapes de création de tables que les novices, c'est-à-dire les débutants, doivent maîtriser. Nous espérons que cela sera utile à ceux qui en ont besoin. Un exemple de formulaire pour les débutants est présenté ci-dessous : voyons comment le remplir ! 1. Il existe deux méthodes pour créer un nouveau document Excel. Vous pouvez cliquer avec le bouton droit de la souris sur un emplacement vide du fichier [Bureau] - [Nouveau] - [xls]. Vous pouvez également [Démarrer]-[Tous les programmes]-[Microsoft Office]-[Microsoft Excel 20**] 2. Double-cliquez sur notre nouvel ex

VSCode (Visual Studio Code) est un éditeur de code open source développé par Microsoft. Il possède des fonctions puissantes et une prise en charge riche des plug-ins, ce qui en fait l'un des outils préférés des développeurs. Cet article fournira un guide d'introduction aux débutants pour les aider à maîtriser rapidement les compétences d'utilisation de VSCode. Dans cet article, nous présenterons comment installer VSCode, les opérations d'édition de base, les touches de raccourci, l'installation du plug-in, etc., et fournirons aux lecteurs des exemples de code spécifiques. 1. Installez d'abord VSCode, nous avons besoin

Comment ouvrir le dragueur de mines ? Démineur est un jeu solo classique dans lequel le but du joueur est de découvrir des nombres dans des carrés afin de déterminer quels carrés contiennent des mines. Si la case révélée ne contient aucune mine, la partie continuera ; si la case révélée contient des mines, la partie se terminera immédiatement. Ensuite, nous présenterons en détail comment accéder au jeu Démineur. Étape 1 : Allumez l'ordinateur Tout d'abord, vous devez allumer l'ordinateur. Minesweeper est un jeu informatique qui ne peut être joué que sur un ordinateur. Si vous n'avez pas encore allumé l'ordinateur, maintenez enfoncé le bouton d'alimentation jusqu'à ce que l'ordinateur s'allume et affiche le bureau. Étape 2 : Recherchez le jeu Minesweeper. Recherchez l’icône du jeu Minesweeper sur le bureau. Si Minesweeper est déjà installé, il devrait apparaître sur le bureau. Sinon, recherchez le jeu Minesweeper dans le menu Démarrer de votre ordinateur.

Des astuces Win11 révélées : Comment contourner la connexion au compte Microsoft Récemment, Microsoft a lancé un nouveau système d'exploitation Windows11, qui a attiré une large attention. Par rapport aux versions précédentes, Windows 11 a apporté de nombreux nouveaux ajustements en termes de conception d'interface et d'améliorations fonctionnelles, mais il a également suscité une certaine controverse. Le point le plus frappant est qu'il oblige les utilisateurs à se connecter au système avec un compte Microsoft. . Certains utilisateurs sont peut-être plus habitués à se connecter avec un compte local et ne souhaitent pas lier leurs informations personnelles à un compte Microsoft.

Titre : Conseils de programmation PHP : Comment accéder à une page Web en 3 secondes Dans le développement Web, nous rencontrons souvent des situations dans lesquelles nous devons passer automatiquement à une autre page dans un certain laps de temps. Cet article explique comment utiliser PHP pour implémenter des techniques de programmation permettant d'accéder à une page en 3 secondes et fournit des exemples de code spécifiques. Tout d'abord, le principe de base du saut de page est réalisé via le champ Location dans l'en-tête de la réponse HTTP. En définissant ce champ, le navigateur peut accéder automatiquement à la page spécifiée. Vous trouverez ci-dessous un exemple simple montrant comment utiliser P
