📄 jdlg.c
字号:
UnlockResource( htemplate );
#endif
return( NULL );
}
// copy template data up to fontinfo
memcpy( newTemplate, template, fontinfo - template );
// copy the new fontinfo
memcpy( newTemplate + ( fontinfo - template ), JFontInfo, JFontInfoLen );
// copy the rest of the template data
memcpy( newTemplate + newdlgHeaderSize, template + dlgHeaderSize,
ctlInfoSize );
GlobalUnlock( newHTemplate );
#ifndef __NT__
UnlockResource( htemplate );
#endif
return( newHTemplate );
}
BOOL JDialogInit( void )
/**********************/
{
char *typeface;
short pointsize;
if( !GetSystemMetrics( SM_DBCSENABLED ) ) {
return( TRUE );
}
if( !getSystemFontTypeface( &typeface, &pointsize ) ) {
return( FALSE );
}
return( createFontInfoData( typeface, pointsize, &JFontInfo,
&JFontInfoLen ) );
}
void JDialogFini( void )
/**********************/
{
if( JFontInfo ) {
MemFree( JFontInfo );
JFontInfo = NULL;
JFontInfoLen = 0;
}
}
static HWND cdIndirect( HINSTANCE hinst, HGLOBAL hglblDlgTemp,
HWND hwndOwner, DLGPROC dlgproc, DWORD size )
/*****************************************************/
{
HGLOBAL newtemplate;
HWND ret;
if( JFontInfo == NULL ) {
goto CDI_DEFAULT_ACTION;
}
newtemplate = createJTemplate( hglblDlgTemp, size );
if( newtemplate == (HGLOBAL) NULL ) {
goto CDI_DEFAULT_ACTION;
}
ret = CreateDialogIndirect( hinst, GlobalLock( newtemplate ),
hwndOwner, dlgproc );
GlobalUnlock( newtemplate );
GlobalFree( newtemplate );
return( ret );
CDI_DEFAULT_ACTION:
ret = CreateDialogIndirect( hinst, GlobalLock( hglblDlgTemp ),
hwndOwner, dlgproc );
GlobalUnlock( hglblDlgTemp );
return( ret );
}
static HWND cdIndirectParam( HINSTANCE hinst, HGLOBAL hglblDlgTemp,
HWND hwndOwner, DLGPROC dlgproc,
LPARAM lParamInit, DWORD size )
/*************************************/
{
HGLOBAL newtemplate;
HWND ret;
if( JFontInfo == NULL ) {
goto CDIP_DEFAULT_ACTION;
}
newtemplate = createJTemplate( hglblDlgTemp, size );
if( newtemplate == (HGLOBAL) NULL ) {
goto CDIP_DEFAULT_ACTION;
}
ret = CreateDialogIndirectParam( hinst, GlobalLock( newtemplate ),
hwndOwner, dlgproc, lParamInit );
GlobalUnlock( newtemplate );
GlobalFree( newtemplate );
return( ret );
CDIP_DEFAULT_ACTION:
ret = CreateDialogIndirectParam( hinst, GlobalLock( hglblDlgTemp ),
hwndOwner, dlgproc, lParamInit );
GlobalUnlock( hglblDlgTemp );
return( ret );
}
static int dbIndirect( HINSTANCE hinst, HGLOBAL hglblDlgTemp,
HWND hwndOwner, DLGPROC dlgproc, DWORD size )
/****************************************************/
{
HGLOBAL newtemplate;
int ret;
if( JFontInfo == NULL ) {
goto DBI_DEFAULT_ACTION;
}
newtemplate = createJTemplate( hglblDlgTemp, size );
if( newtemplate == (HGLOBAL) NULL ) {
goto DBI_DEFAULT_ACTION;
}
#if defined(__NT__)
ret = DialogBoxIndirect( hinst, GlobalLock( newtemplate ),
hwndOwner, dlgproc );
GlobalUnlock( newtemplate );
#else
ret = DialogBoxIndirect( hinst, newtemplate, hwndOwner, dlgproc );
#endif
GlobalFree( newtemplate );
return( ret );
DBI_DEFAULT_ACTION:
return( DialogBoxIndirect( hinst, hglblDlgTemp, hwndOwner, dlgproc ) );
}
static int dbIndirectParam( HINSTANCE hinst, HGLOBAL hglblDlgTemp,
HWND hwndOwner, DLGPROC dlgproc,
LPARAM lParamInit, DWORD size )
/************************************/
{
HGLOBAL newtemplate;
int ret;
if( JFontInfo == NULL ) {
goto DBIP_DEFAULT_ACTION;
}
newtemplate = createJTemplate( hglblDlgTemp, size );
if( newtemplate == (HGLOBAL) NULL ) {
goto DBIP_DEFAULT_ACTION;
}
#if defined(__NT__)
ret = DialogBoxIndirectParam( hinst, GlobalLock( newtemplate ),
hwndOwner, dlgproc, lParamInit );
GlobalUnlock( newtemplate );
#else
ret = DialogBoxIndirectParam( hinst, newtemplate,
hwndOwner, dlgproc, lParamInit );
#endif
GlobalFree( newtemplate );
return( ret );
DBIP_DEFAULT_ACTION:
return( DialogBoxIndirectParam( hinst, hglblDlgTemp, hwndOwner, dlgproc, lParamInit ) );
}
int JDialogBoxIndirect( HINSTANCE hinst, HGLOBAL hglblDlgTemp,
HWND hwndOwner, DLGPROC dlgproc )
/**********************************/
{
return( dbIndirect( hinst, hglblDlgTemp, hwndOwner, dlgproc, -1 ) );
}
int JDialogBoxIndirectParam( HINSTANCE hinst, HGLOBAL hglblDlgTemp,
HWND hwndOwner, DLGPROC dlgproc,
LPARAM lParamInit )
/*************************/
{
return( dbIndirectParam( hinst, hglblDlgTemp, hwndOwner, dlgproc,
lParamInit, -1 ) );
}
HWND JCreateDialogIndirect( HINSTANCE hinst, HGLOBAL hglblDlgTemp,
HWND hwndOwner, DLGPROC dlgproc )
/**************************************/
{
return( cdIndirect( hinst, hglblDlgTemp, hwndOwner, dlgproc, -1 ) );
}
HWND JCreateDialogIndirectParam( HINSTANCE hinst, HGLOBAL hglblDlgTemp,
HWND hwndOwner, DLGPROC dlgproc,
LPARAM lParamInit )
/**********************/
{
return( cdIndirectParam( hinst, hglblDlgTemp, hwndOwner, dlgproc,
lParamInit, -1 ) );
}
int JDialogBox( HINSTANCE hinst, LPCSTR lpszDlgTemp,
HWND hwndOwner, DLGPROC dlgproc )
/*********************************/
{
HGLOBAL template;
DWORD size;
int ret;
if( JFontInfo == NULL ) {
goto JDB_DEFAULT_ACTION;
}
template = loadDialogTemplate( hinst, lpszDlgTemp, &size );
if( template == (HGLOBAL) NULL ) {
goto JDB_DEFAULT_ACTION;
}
ret = dbIndirect( hinst, template, hwndOwner, dlgproc, size );
FreeResource( template );
return( ret );
JDB_DEFAULT_ACTION:
return( DialogBox( hinst, lpszDlgTemp, hwndOwner, dlgproc ) );
}
int JDialogBoxParam( HINSTANCE hinst, LPCSTR lpszDlgTemp,
HWND hwndOwner, DLGPROC dlgproc,
LPARAM lParamInit )
/************************/
{
HGLOBAL template;
DWORD size;
int ret;
if( JFontInfo == NULL ) {
goto JDBP_DEFAULT_ACTION;
}
template = loadDialogTemplate( hinst, lpszDlgTemp, &size );
if( template == (HGLOBAL) NULL ) {
goto JDBP_DEFAULT_ACTION;
}
ret = dbIndirectParam( hinst, template, hwndOwner, dlgproc,
lParamInit, size );
FreeResource( template );
return( ret );
JDBP_DEFAULT_ACTION:
return( DialogBoxParam( hinst, lpszDlgTemp, hwndOwner, dlgproc, lParamInit ) );
}
HWND JCreateDialog( HINSTANCE hinst, LPCSTR lpszDlgTemp,
HWND hwndOwner, DLGPROC dlgproc )
/*************************************/
{
HGLOBAL template;
DWORD size;
HWND ret;
if( JFontInfo == NULL ) {
goto JCD_DEFAULT_ACTION;
}
template = loadDialogTemplate( hinst, lpszDlgTemp, &size );
if( template == (HGLOBAL) NULL ) {
goto JCD_DEFAULT_ACTION;
}
ret = cdIndirect( hinst, template, hwndOwner, dlgproc, size );
FreeResource( template );
return( ret );
JCD_DEFAULT_ACTION:
return( CreateDialog( hinst, lpszDlgTemp, hwndOwner, dlgproc ) );
}
HWND JCreateDialogParam( HINSTANCE hinst, LPCSTR lpszDlgTemp,
HWND hwndOwner, DLGPROC dlgproc, LPARAM lParamInit )
/******************************************************/
{
HGLOBAL template;
DWORD size;
HWND ret;
if( JFontInfo == NULL ) {
goto JCDP_DEFAULT_ACTION;
}
template = loadDialogTemplate( hinst, lpszDlgTemp, &size );
if( template == (HGLOBAL) NULL ) {
goto JCDP_DEFAULT_ACTION;
}
ret = cdIndirectParam( hinst, template, hwndOwner, dlgproc,
lParamInit, size );
FreeResource( template );
return( ret );
JCDP_DEFAULT_ACTION:
return( CreateDialogParam( hinst, lpszDlgTemp, hwndOwner,
dlgproc, lParamInit ) );
}
BOOL JDialogGetJFont( char **typeface, short *pointsize )
{
return( getSystemFontTypeface( typeface, pointsize ) );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -