Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Krycztij last won the day on February 5 2018

Krycztij had the most liked content!

Community Reputation

3 Neutral

About Krycztij

  • Rank
    Brig. General
  • Birthday 09/05/1981

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Your previous video had many annotations – That’s Las Vegas in the distance, We’ll pick the right runway, Here’s crosswind, etc. They made it accessible to non-DCS players like me, and I’m missing them. I find myself thinking What’s that beep?, I’m sure you’re doing it wrong, but how is it supposed to be done right?, Is this normal?, and so on. Of course I could just ask those things here but still that makes it less fun to watch compared to the last one. Not meaning to complain, though. I did watch and enjoy it, after all!
  2. It was the preferred way of creating windows for several years because you have a graphical editor and a preview – no way to do this for CreateWindow() calls you can pass these dialog resources to your localization department to translate them along with the other localized resources. Most native windows in Windows ’95–7 were designed and localized that way – e.g the File Properties dialog and various Control Panel windows – but they don’t have problems because they are fixed-size dialogs or don’t rely on 0x80000000 to compute the dimensions for them. I was ne
  3. That’s too kind of you! It’s pretty cumbersome to pack ZIPs and hand them around, so I just created a git repository for TFXplorer. It’s read-only and represents the “stable” branch, meaning as little as “it compiles and the EXE opens without crashing right away”. But it means that you can always get the latest version, or browse old versions (I included ~300 revisions reaching back to 2011, but of course I can’t guarantee that any of them still compiles). You’re a Linux guy, so you will know your way around git’s command line. If you want to use the repo fr
  4. That’s about the same size as TFXplorer and all my other programs normally start. It’s the placement I’d expect from CW_USEDEFAULT. If this fails to display in a similar fashion in Wine, I’d say you have a pretty good isolated test case they should check out! This feature may not be well-known or well-documented, they may say, but you obviously know at least three programs that rely on it and break with Wine
  5. How big on windows? Actually 32768² units (~100k² pixels)? Or fitting to the screen?
  6. Could you please try changing WS_POPUP to WS_OVERLAPPED in line 74? Pop-up-Windows have some special properties, and CW_USEDEFAULT does not work for them. (I forgot the specific specialities and need to read up on it again when I do proper message boxes!) Edit: This reads like WS_POPUP triggers some technical debt from 1991 And this does not sound better: That’s the thing with Win32: There’s so much legacy APIs that you get lost really fast. On the other hand, this legacy code, when used correctly, is incredibly fast, stable, and memory-friend
  7. Correct. First, you’d create a dialog box according to https://docs.microsoft.com/en-us/cpp/windows/creating-a-new-dialog-box That looks a bit dry without pictures, so I suppose you start at 1:41 here: Skip all that button placement, I guess you don’t need anything besides an OK button. Also skip the Event Handler code etc. In your main, you call DialogBoxParamW() with hInstance = NULL, lpTemplateName = MAKEINTRESOURCE(IDD_DIALOG1), parent=NULL, lpDialogFunc = &DefDlgProcW, dwInitParam = 0. IDD_DIALOG1 is the name the resource
  8. Because I mixed up CW_USEDEFAULT and CW_USEDEFAULT16 🙄 Sorry! So CW_USEDEFAULT16 is 0x8000 and CW_USEDEFAULT is 0x80000000. Dialog Templates use CW_USEDEFAULT16 because they are restricted to 16-bit numbers. The Wine code actually translates CW_USEDEFAULT16 to CW_USEDEFAULT, but only for x/y and not for cx/cy.
  9. Neither on Windows 7. MS seems to have made a fully Unicode-compatible font not before Windows 10 … That’s really the standard Win32 controls (“Win32 Common Controls”); I didn’t change a single thing I must admit that this doesn’t have to be Wine’s fault (or your setup’s); there are problems on Windows as well. Rarely, but still too many. That’s a reason I decided against the Common Controls in TFXplorer – I wouldn’t mind the classic look if they worked perfectly, but they don’t … This tutorial looks like it could work: https://docs.microsoft.com/en-us/cp
  10. Krycztij

    spoiler test

    I just quoted long text and it was automatically cut to a moderate size with an “extend” button at the bottom. Trying it again: Maybe that’s sufficient?!
  11. Okay, here’s my analysis of Wine’s code: DialogBoxIndirectParamW() is defined at https://github.com/wine-mirror/wine/blob/master/dlls/user32/dialog.c#L898 (This is the right place, as the Win32 DialogBoxIndirectParamW() is also located in User32.dll) it redirects to DialogBoxIndirectParamAorW() (line 876) this, in turn, redirects dialog creation to DIALOG_CreateIndirect() (line 443) line 532 looks very promising: if (template.x == (SHORT)0x8000 /*CW_USEDEFAULT16*/) pos.x = pos.y = CW_USEDEFAULT; This conforms to the documentation I quoted abo
  12. Cool! I’m using the Windows standard mechanism for dialog creation: A dialog template. These are normally created via resource files (.rc) in Visual Studio, but I hate to depend on Microsoft’s toolchain, so I wrote a few C++ templates which generate the exact same data. The dialog template starts with a DLGTEMPLATE structure. This is defined in TFXplorer.cpp, as the global variable frameDialogTemplate. You only see an instance of OS::Win32::ClassicUI::DialogTemplateHeader there, but what this template does, is it generates the DLGTEMPLATE structure. In gener
  13. Exactly. You could basically run search-and-replace, but having a consistent build chain seems more desireable. (That’s why I had been talking about adding the compiler to source control in the other thread – we could just check out a specific version of TFXplorer with the according build chain. If only the dependencies weren’t such a mess.) Wow, that’s fantastic news! I know that D3D 10/11/12 has a software renderer (it’s called WARP and I use it e.g. for Lean Viewer to run on low-end systems), but I never knew about D3D 9 having one. Maybe your VM comes with basic GPU emulation? I’ve
  14. “not” was introduced with the C++20 standard, so the compiler is too old. Your snapshot says Developer Command Prompt v16.5.0, but mine is v16.10.0. In the environment file, did you point vcvarsall.bat to the wrong location (to an older version of Visual Studio)? Make sure it points to the 2019 version. Edit: Duh, didn’t read it all! Your path already points to VS 2019. Interesting … in the TFXplorer project properties > C/C++ > Language > C++ Language Standard, does it say Preview? It should. Also, try updating your Visual C++ by searching the Star
  15. Not using windows.h because it includes ~80k lines of code and needs a few #defines to work properly. When I need a WinAPI function, it is declared privately in a cpp that provides a wrapper (almost all of which are named OS Win32 ….cpp). E.g. look at OS Win32 File.cpp (172) for an example of why and how to wrap WinAPI calls.
  • Create New...