⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 addgroup.cpp

📁 Visual C++下的界面设计
💻 CPP
字号:
/**************************************************************************

   THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
   ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
   THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
   PARTICULAR PURPOSE.

   Copyright (C) 1993-1995  Microsoft Corporation.  All Rights Reserved.

   File:          AddGroup.cpp
   
   Description:   Provides the functionality for adding a group to the 
                  programs folder under the start menu.

**************************************************************************/

#define STRICT

/**************************************************************************
   Include Files
**************************************************************************/

#include <windows.h>
#include <windowsx.h>
#include <shlobj.h>
#include "globals.h"
#include "resource.h"

/**************************************************************************
   Local Function Prototypes
**************************************************************************/

BOOL CreateFolder(LPSTR);
BOOL GetFolderName(HWND, LPSTR);
BOOL CALLBACK GetFolderNameDlgProc(HWND, UINT, WPARAM, LPARAM);

/**************************************************************************
   Global Variables
**************************************************************************/

BOOL AddGroup(HWND hWnd)
{
LPITEMIDLIST   pidlStartMenu,
               pidlDestination;
char           szTemp[MAX_PATH],
               szPath[MAX_PATH];

//get the pidl for the start menu - thgis will be used to intialize the folder browser
SHGetSpecialFolderLocation(NULL, CSIDL_PROGRAMS, &pidlStartMenu);

//get the parent of the new folder
if(!GetFolder(hWnd, &pidlDestination, pidlStartMenu, szTemp, "Select Location for Folder"))
   return FALSE;

//get the path for the folder
SHGetPathFromIDList(pidlDestination, szPath);

//get the name of the new folder
GetFolderName(hWnd, szPath);

//create the folder
CreateFolder(szPath);

return TRUE;
}

/**************************************************************************

   CreateFolder()

**************************************************************************/

BOOL CreateFolder(LPSTR lpszFolder) 
{ 
//create the folder
CreateDirectory(lpszFolder, NULL);

//notify the shell that you made a change
SHChangeNotify(SHCNE_MKDIR, SHCNF_PATH, lpszFolder, 0);

return TRUE;
}

/**************************************************************************

   GetFolderName()

**************************************************************************/

BOOL GetFolderName(HWND hWnd, LPSTR lpszPath)
{
return DialogBoxParam(  g_hInstance, 
                        MAKEINTRESOURCE(IDD_GET_NAME), 
                        hWnd,
                        GetFolderNameDlgProc,
                        (LPARAM)lpszPath);
}

/**************************************************************************

   GetFolderNameDlgProc()

**************************************************************************/

BOOL CALLBACK GetFolderNameDlgProc( HWND hWnd, 
                                    UINT uMsg, 
                                    WPARAM wParam, 
                                    LPARAM lParam)
{
static LPSTR   lpszFolder;

switch(uMsg)
   {
   case WM_INITDIALOG:
      lpszFolder = (LPSTR)lParam;
      
      SetWindowText(hWnd, "Enter Folder Name");
      SetDlgItemText(hWnd, IDC_STATIC_TEXT, "Enter a name for the folder");
      return TRUE;

   case WM_COMMAND:
      switch (GET_WM_COMMAND_ID(wParam, lParam))
         {
         case IDOK:
            {
            char  szTemp[MAX_PATH];
            
            GetDlgItemText(hWnd, IDC_TEXT, szTemp, sizeof(szTemp));
            lstrcat(lpszFolder, "\\");
            lstrcat(lpszFolder, szTemp);
            EndDialog(hWnd, TRUE);
            }      
            break;
            
         case IDCANCEL:
            EndDialog(hWnd, FALSE);
            break;
         }
      return TRUE;
   }
   
return FALSE;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -