//SAMPLE 1 - Compiles a bitmap, a dialog and a version info resource demonstrating nested include statements, special characters & string concatenation. 100 BITMAP "sample1.bmp" //sample1.inc defines several string constants needed for the dialog and it also contains a nested include to sample1.h that defines control IDs. //I've done things this way simply to show that nested includes are possible. I'm not that suggesting this is normally a good way to do things. :) #INCLUDE sample1.inc //The dialog's caption, and the 2nd to 6th control captions demonstrate //the compiler's ability to parse escape characters and concatenate strings //Note: there's no difference between \xFFFF and \uFFFF. Both accept any hexidecimal WORD value and convert it to a character (eg \u9 == \t). ABOUT DIALOGEX 0, 0, 179, 109 STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION IDS_APP_TITLE + " - About" LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL FONT 9, "Arial" { CONTROL 100, 100, STATIC, SS_BITMAP | WS_CHILD | WS_VISIBLE | WS_GROUP, 16, 12, 54, 54 CONTROL IDS_APP_TITLE, 101, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 84, 11, 91, 18 CONTROL "Version " + IDS_DOTTED_VER_NO, -1, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 84, 30, 90, 11 CONTROL "Angus Johnson \u2764", -1, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 84, 39, 90, 11 CONTROL "Copyright \xA9 1998-2018", -1, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 84, 50, 90, 11 CONTROL "http://www.angusj.com", 102, "SysLink", WS_CHILD | WS_VISIBLE | WS_GROUP, 85, 59, 90, 11 , 0x00000000 CONTROL "", -1, STATIC, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE | WS_GROUP, 0, 80, 179, 1 CONTROL "hidden", -1, STATIC, SS_LEFT | WS_CHILD | NOT WS_VISIBLE, 16, 90, 26, 11 CONTROL "&OK", 103, BUTTON, BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 115, 87, 58, 16 , 0x00000000 } //String concatenation normally requires a plus (+) between strings. //However when no parameters are expected to follow a string in a resource definition //statement, implicit concatenation (ie without a +) is allowed between strings. //This is demonstrated in the first StringFileInfo VALUE statement below. 1 VERSIONINFO FILEVERSION MAJOR_VERSION,MINOR_VERSION,RELEASE_NUMBER,BUILD_NUMBER PRODUCTVERSION MAJOR_VERSION,MINOR_VERSION,RELEASE_NUMBER,BUILD_NUMBER FILEOS 0x4 FILETYPE 0x1 { BLOCK "StringFileInfo" { BLOCK "040904b0" { VALUE "Comments", IDS_APP_TITLE " - no nags, no ads and fully functional" VALUE "FileDescription", IDS_APP_TITLE VALUE "InternalName", IDS_APP_NAME VALUE "ProductName", IDS_APP_NAME VALUE "CompanyName", IDS_APP_AUTHOR VALUE "FileVersion", IDS_DOTTED_VER_NO VALUE "ProductVersion", IDS_DOTTED_VER_NO VALUE "LegalCopyright", "Copyright \xA9 1998-2018 " + IDS_APP_AUTHOR VALUE "OriginalFilename", IDS_APP_NAME } } BLOCK "VarFileInfo" { VALUE "Translation", 0x0409 0x04B0 } }