Hi,
This one has go me chasing my tail.
New windows 11 pro workstation. only happening on this one workstation.
Clarion 11.1
Appp works, well.
But after a few minutes or a few hours all MESSAGE windows will show the buttons just fine. But then all of a sudden the BUTTONS + TEXT are gone. No pattern noticed.
Basic YES + NO buttons.
Press “Y” or “N” works, as if the buttons are “hidden”?
Any advice
Check the number of GDI objects in the Windows registry for this computer. Some programs change it … or they specifically reduce it for their own purposes (see the Windows API).
If there is a leak of GDI objects, the application will not be able to create new controls in windows.
Loc:GDI = GetReg(REG_LOCAL_MACHINE,'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows','GDIProcessHandleQuota',Loc:TypeParam)
If Loc:GDI < 65000
PutReg(REG_LOCAL_MACHINE,'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows','GDIProcessHandleQuota',0FDE9h,Loc:TypeParam)
end
CASE Message('Sending Notification AGAIN?','Notification Status',ICON:Question,BUTTON:Yes+BUTTON:No,BUTTON:No,MSGMODE:SYSMODAL)
OF BUTTON:No
OF BUTTON:Yes; Do SendWatiNow
END
Sorry. But it’s still some kind of conflict between the application and the system components or the driver (primarily the graphics card). The process ccc.exe not running ?
IIRC that is a holdover from 16 bit Windows. In 32 bit that should do nothing as it’s not possible. The typical alternative is to make the window top-most. Best to remove it.
In Equates.clw you could change the value from (1) to (0) so if it is used in code it will have no value and no possible effect. Or comment out that line so it will report an error and make you fix the code.
Run Task Manager when the issue is occurring. Go to the Details tab and right-click on the column headers and choose “select columns”. Add Handles, Thread, User Object, GDI Objects.
See if your application or any other has really large numbers.
Check this MESSAGE( statement and if necessary, do a search through all your generated source code for the MESSAGE( statements and check that they all have the correct structure. (You might be able to use a regex to do this?)
I had a similar problem decades ago with a Clarion 6 app where I had one MESSAGE( statement where I had forgotten the Icon part of the statement and it would pop up a malformed message; if I remember correctly it was somewhat random?
Hello Everyone!
I did not used to much the AI, but tried to look for a solution to this problem, maybe might help:
Root Cause (Likely)
The issue is specific to Clarion’s use of Windows APIs for message boxes, especially when run on Windows 11 with newer GPUs or high DPI settings. Windows 11 introduced subtle rendering behavior changes around UI scaling, font fallback, and GPU acceleration — all of which Clarion 11.1 does not fully account for.
The fact that the app runs “fine” and then gradually loses MESSAGE box content points to:
Possibilities:
DPI scaling + high resolution monitor — buttons disappear on MESSAGE boxes due to DPI-induced redraw issues.
GPU driver conflict — especially with Intel integrated + NVIDIA dual-GPU laptops or workstations.
Windows 11 rendering system bug — MESSAGE boxes may use non-client rendering affected by recent Windows changes.
Font rendering corruption — some MESSAGE box elements use system fonts which can become “invisible” due to rendering bugs.
Clarion runtime rendering bug — possibly due to older compiled RTL code not handling Windows 11 changes.
Fixes / Workarounds
Here are several tested solutions that have worked for others:
Disable Hardware Graphics Acceleration (System-wide)
Sometimes Windows hardware acceleration conflicts with Clarion’s GDI usage.
Run your Clarion EXE or IDE in compatibility mode:
Right-click your Clarion-generated EXE
Go to Properties → Compatibility
Check “Run this program in compatibility mode for Windows 10”
Also check “Disable fullscreen optimizations”
Save, and test again.
Force GDI Scaling for High DPI
Clarion apps aren’t fully DPI-aware. You can enforce GDI scaling:
Right-click the EXE → Properties → Compatibility → Change high DPI settings
Under “High DPI scaling override”, check:
Override high DPI scaling behavior
Scaling performed by: System (Enhanced)
This usually restores proper MESSAGE box rendering on high-DPI displays.
Check for GPU Driver Updates
If you’re on an Intel Arc, UHD, or NVIDIA RTX, update drivers directly from vendor (not via Windows Update).
Rebuild with the Latest Clarion Runtime
Make sure you’re using the latest Clarion 11.1 build (13744 or newer) and fully rebuilt your app. If not:
Clean and rebuild the app
Ensure the CLARUNX.DLL you’re deploying matches your compiled version
Try statically linking instead of dynamic linking
Try using Clarion’s MESSAGEBOX API Alternative
If you’re using Clarion’s MESSAGE() function, try using a custom message procedure with Clarion’s own window or MESSAGEBOX API call. You can define your own window for message boxes and avoid the runtime’s default rendering altogether.
Test on Different Monitor / DPI Setup
This might be triggered by a multi-monitor setup where one monitor has 100% scaling and another has 150% or 175%.